我可以在设计时更改继承控件的属性吗?

时间:2009-03-23 13:17:39

标签: vb.net visual-studio inheritance visual-inheritance

我正在使用视觉继承,并且想知道是否有办法在设计时更改继承控件的属性,最好是在表单设计器中。如果没有,那么在设计师代码中。

我的控件在基类中声明为Public。我可以在子表单代码中访问它,但不能在表单设计器中访问它。这是不可能的吗?

3 个答案:

答案 0 :(得分:3)

视觉工作室中存在视觉继承的限制。遗憾的是,派生的forms \ usercontrols无法修改包含基类内集合的控件,即DataGridViewRows,ToolStrips,ListViewColumns等。

Microsoft Bug Report

在某些情况下,有很多方法可以解决这个问题。在基类中创建一个受保护的属性,该属性公开要修改的控件的确切属性(DataGridView.BackgroundColor或ListView.Columns)。

您的基本表单应该能够访问此属性以更改所需的组件。我已经成功地为ListView.Columns和DataGridView.rows做了这个,但是ToolStrip.Items不起作用。

答案 1 :(得分:2)

它似乎仅适用于某些控件,但不是全部,我无法理解为什么。在我的基础表单上,我有一个TabControl,其中包含一个ComboBox,一个ToolStrip和一个DataGridView。所有这些都设置为Public,但我只能修改ComboBox的属性而不能修改其他两个控件。

我不知道为什么会这样。

答案 2 :(得分:-1)

您需要更改控件可见性。将控件属性Modifiers置于公共状态并重新编译项目,然后您可以更改继承控件的属性。