Вопрос

От здесь Я создал BaseForm, затем установите все его BaseForm.Designer.cs private участники, чтобы protected.Затем имел визуально унаследованный /производный Form.

Теперь я могу изменить размер или видоизменить все элементы управления в производном Form во время разработки, за исключением DataGridView.Я нахожу то, что нужно DataGridView как зафиксировано в производном Form, даже если он не заблокирован в BaseForm.

В чем может быть причина?Что я должен посмотреть / проверить еще раз?

У меня есть базовая форма, подобная этой: alt text

И я вывел такую форму, как эта: alt text

Это было полезно?

Решение

Я предполагаю, что VS designer блокирует элементы управления, полученные из базовых классов.Поскольку у вас тот же код инициализации, вы бы изменили свойства grid внутри базового класса, что повлияет на все остальные производные формы.

Если вы хотите изменить свойства своей сетки, я бы рекомендовал иметь отдельную сетку для дочерней формы, поскольку она должна вести себя по-другому.

Другие советы

Это известная проблема..

https://connect.microsoft.com/VisualStudio/feedback/details/284335/designer-prevents-access-to-protected-datagridview-control-in-inherited-form

Вы можете создать класс пользовательского элемента управления и быть производным от класса DataGridView

[Designer(typeof(System.Windows.Forms.Design.ControlDesigner))]
public class MyDataGridViewUserControl : DataGridView { }

Похоже, у некоторых это проблема.СЕТЕВЫЕ элементы управления.Здесь хорошо написано:

DataGridView заблокирован на унаследованном UserControl

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top