C # Winforms проблемы визуального наследования с DataGridView - PullRequest
1 голос
/ 22 октября 2010

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

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

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

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

И я получил такую ​​форму: alt text

Ответы [ 3 ]

1 голос
/ 27 ноября 2013

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

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 { }
0 голосов
/ 27 ноября 2013

Кажется, проблема с некоторыми элементами управления .NET.Здесь хорошо написано:

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

0 голосов
/ 22 октября 2010

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

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

...