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