C# Winforms проблемы визуального наследования с DataGridView
Отсюда я создал BaseForm
затем установите все свои BaseForm.Designer.cs
private
члены к protected
, Затем был визуально унаследован / получен Form
,
Теперь я могу изменить размер или изменить все элементы управления в производной Form
во время разработки, кроме DataGridView
, Я нахожу DataGridView
как заблокировано в производном Form
даже если он не заблокирован в BaseForm
,
В чем может быть причина? Что я должен посмотреть / проверить снова?
У меня есть базовая форма, как это:
И я получил такую форму:
3 ответа
Я предполагаю, что конструктор VS блокирует элементы управления, исходящие из базовых классов. Поскольку у вас одинаковый код инициализации, вы бы изменили свойства сетки внутри базового класса, что влияет на все остальные производные формы.
Если вы хотите изменить свойства вашей сетки, я бы рекомендовал иметь отдельную сетку для дочерней формы, поскольку она должна вести себя по-другому.
Это известная проблема..
Вы можете создать пользовательский класс управления и наследовать от класса DataGridView
[Designer(typeof(System.Windows.Forms.Design.ControlDesigner))]
public class MyDataGridViewUserControl : DataGridView { }
Кажется, проблема с некоторыми элементами управления.NET. Здесь хорошо написано: