public class MyComponent : Component { //重载这个属性 public override ISite Site { get { return base.Site; } set { if (value == null) { return; } IDesignerHost host = value.GetService(typeof(IDesignerHost)) as IDesignerHost; if (host != null) { IComponent componentHost = host.RootComponent; if (componentHost is ContainerControl) { Parent = componentHost as ContainerControl; } } base.Site = value; } } public ContainerControl Parent { get; set; } public void Test() { //Parent就是窗体 MessageBox.Show((Parent == null).ToString()); } }
重载这个方法,你就可以在窗体或组建内部访问到父容器,这个编译后,添加到窗体的时候会设置Host。记录下自己的父窗体。
访问父容器组件
本文介绍了一个自定义组件MyComponent,通过重载ISite属性来记录父窗体信息的方法。这样可以在窗体或组件内部访问到父容器。
1382

被折叠的 条评论
为什么被折叠?



