C# 使子控件成为IContainer
我创建了一个继承面板控件的控件类。这个控件然后包含另外两个面板,其中一个我想成为IContainerControl 我知道如何将整个控件转换为IContainerControl,但无法对子控件执行相同的操作。我试过C#和VB.Net,但都失败了 这有意义吗?我试着搜索,但没有找到任何有用的东西,希望这里有人能帮我找到路 谢谢 编辑 对不起,这是漫长的一天。。。我正在使用WinForms 基本上,我需要一个自定义usercontrol,它有两个面板,一个显示一些统计信息,另一个包含控件。stats面板已完成并工作,但另一个面板可能包含DataGridView、ListView或TreeView(用户在设计时添加的)C# 使子控件成为IContainer,c#,vb.net,winforms,controls,containers,C#,Vb.net,Winforms,Controls,Containers,我创建了一个继承面板控件的控件类。这个控件然后包含另外两个面板,其中一个我想成为IContainerControl 我知道如何将整个控件转换为IContainerControl,但无法对子控件执行相同的操作。我试过C#和VB.Net,但都失败了 这有意义吗?我试着搜索,但没有找到任何有用的东西,希望这里有人能帮我找到路 谢谢 编辑 对不起,这是漫长的一天。。。我正在使用WinForms 基本上,我需要一个自定义usercontrol,它有两个面板,一个显示一些统计信息,另一个包含控件。stats
是的,我已经实现了ActiveControl和ActivateControl。我认为这里有两种策略:首先是“便宜的东西”: 便宜货策略:
- 可以按标准方式编辑每个控件的外观和属性
- 最终用户可以选择在UserControl2上使用哪个控件
- 这里的组件分离程度更高,从而更易于维护或扩展
- 谁将根据用户是选择TreeView还是ListView为控件进行UserControl2编程
在这两种策略中,您都需要做一些工作来启用访问(您公开了哪些属性,您对封闭容器引发了哪些事件,等等)。除了上面Ian Ringrose提出的问题之外:我想您最好告诉我们您在这里想要实现什么:您希望在设计时能够做什么;您希望在运行时执行什么行为?对于(我猜)继承自IContainerControl接口的面板:您是否实现了:“IContainerControl.ActiveControl”和“System.Windows.Forms.IContainerControl.ActivateControl(System.Windows.Forms.Control)”?编辑了问题,希望对您有所帮助。谢谢!在你提供的两个链接之间,我想我能找到一些东西。