【问题标题】:Can I change properties of inherited controls at design time?我可以在设计时更改继承控件的属性吗?
【发布时间】:2010-10-14 23:18:55
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:

Visual Studio 中存在视觉继承限制。不幸的是,派生的表单\用户控件无法修改包含基础内的集合的控件,即 DataGridViewRows、ToolStrips、ListViewColumns 等。

Microsoft Bug Report

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

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

【讨论】:

  • 我遇到了同样的情况,它适用于按钮,但不适用于工具条。
  • 我想知道为什么我无法正确显示工具条 - 谢谢
【解决方案2】:

它似乎只适用于某些控件,但不是全部,我不明白为什么。在我的基本表单上,我有一个 TabControl,其中包含一个 ComboBox、一个 ToolStrip 和一个 DataGridView。全部设置为Public,但我只能修改ComboBox的属性,不能修改其他两个控件。

我不知道这是为什么。

【讨论】:

  • ToolStrip 和 DGV 的设计者就是不支持它。
【解决方案3】:

您需要更改控件的可见性。将控件属性Modifiers设置为public,重新编译工程,就可以修改继承控件的属性了。

【讨论】:

  • 它似乎只适用于某些控件,但不是全部,我不明白为什么。在我的基本表单上,我有一个 TabControl,其中包含一个 ComboBox、一个 ToolStrip 和一个 DataGridView。全部设置为Public,但是我只能修改ComboBox的属性,不能修改其他两个控件。
猜你喜欢
  • 2019-10-28
  • 2010-09-14
  • 1970-01-01
  • 2012-11-01
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
相关资源
最近更新 更多