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