C#中的复合Winform控件

时间:2010-01-13 06:05:35

标签: c#

复合控制

Image http://www.freeimagehosting.net/uploads/a51136603b.png

你好

我希望得到一些帮助。我想创建一个复合控件,如上面的截图所示。如屏幕截图所示,父控件是标签1;它包含子控件Label2,Label3和Label4,以及包含预定义图像的PictureBox。

我想将上述内容转换为C#中的复合控件,具有以下规范:

父标签Label1应生成Click事件。子项控件Label2,Label3和Label4将在MouseMove事件上分配工具提示,而最后一个子控件PictureBox应该在MouseMove事件和Click事件上都有工具提示。

同样,必须将Parent Label1控件中Label2,Label3,Label4和PictureBox的位置设置为属性,以及它们的文本和大小。

如何将所有这些合并到一个名为AilmentLabel的复合控件中?任何建议或信息都非常感谢。非常感谢你。

2 个答案:

答案 0 :(得分:3)

MSDN提供了如何执行此操作的非常详尽的演练。您应该阅读演练:"Authoring a Composite Control with C#"

答案 1 :(得分:1)

听起来你想要创建一个'UserControl'。它就像任何其他控件一样,但您可以向表面添加控件。然后,您将公开UserControl源中的属性,这些属性会将更改传播到适当的控件:

public string Label1Text {
    get { return this.Label1.Text; }
    set { this.Label1.Text = value; }
}
...etc...

您甚至可以以这种方式公开Click事件,并允许用户订阅它们。然后,您可以将此新控件拖放到其他窗口表面上。