ben*_*rce 11 .net c# inheritance winforms
我有一个带有一些预定义控件的UserControl(groupbox,button,datagridview),这些控件被标记为protected,组件变量也被标记为protected.
然后我想从这个基本UserControl继承到另一个UserControl,但是DataGridView总是被锁定在设计器中.
我怀疑它可能与实现ISupportInitilize的DataGridView有关.
public class BaseGridDetail : UserControl
Run Code Online (Sandbox Code Playgroud)
是否定义了DataGridView控件(等).
public class InheritedDetail : BaseGridDetail
Run Code Online (Sandbox Code Playgroud)
DataGridView控件已锁定
有没有人有任何想法如何在继承人之后在设计师中提供这种控制?
Rob*_*obS 12
从它的外观来看,DataListView(和一些其他控件)不支持可视继承.这里记录了一个连接问题,看起来并不乐观.
使用其他表单控件记录了类似的问题,例如flowlayoutpanel.
我无法找到强制视觉继承的方法.
以下是关于连接的官方答案:"对于这个特定的版本,DataGridView并非设计用于视觉传播.我们将在计划未来发布时牢记您的建议"那是2006年5月26日.
更新:发现此博客文章可能有答案
编辑:我无法验证博客帖子的声明.看起来可能是这个问题的最新消息
看起来您仍然可以在运行时操作DataListView,因此您可以设置可视属性(和其他设置).这不是一个很好的妥协.
[1]创建自定义用户控件
[2]使您的自定义userControl使用下面的Inherited DataGridView:
[Designer(typeof System.Windows.Forms.Design.ControlDesigner))]
public class InheritedDataGridView : DataGridView { }
Run Code Online (Sandbox Code Playgroud)
[3]继承自己的自定义用户控件,并且中提琴!!
[4]哦,别忘了添加"System.Design"dll
请享用.
| 归档时间: |
|
| 查看次数: |
11289 次 |
| 最近记录: |