我正在使用视觉继承,并且想知道是否有办法在设计时更改继承控件的属性,最好是在表单设计器中。如果没有,那么在设计师代码中。
我的控件在基类中声明为Public。我可以在子表单代码中访问它,但不能在表单设计器中访问它。这是不可能的吗?
答案 0 :(得分:3)
视觉工作室中存在视觉继承的限制。遗憾的是,派生的forms \ usercontrols无法修改包含基类内集合的控件,即DataGridViewRows,ToolStrips,ListViewColumns等。
在某些情况下,有很多方法可以解决这个问题。在基类中创建一个受保护的属性,该属性公开要修改的控件的确切属性(DataGridView.BackgroundColor或ListView.Columns)。
您的基本表单应该能够访问此属性以更改所需的组件。我已经成功地为ListView.Columns和DataGridView.rows做了这个,但是ToolStrip.Items不起作用。
答案 1 :(得分:2)
它似乎仅适用于某些控件,但不是全部,我无法理解为什么。在我的基础表单上,我有一个TabControl,其中包含一个ComboBox,一个ToolStrip和一个DataGridView。所有这些都设置为Public,但我只能修改ComboBox的属性而不能修改其他两个控件。
我不知道为什么会这样。
答案 2 :(得分:-1)
您需要更改控件可见性。将控件属性Modifiers置于公共状态并重新编译项目,然后您可以更改继承控件的属性。