【问题标题】:Composite Winform Control in C#C# 中的复合 Winform 控件
【发布时间】:2010-01-13 06:05:35
【问题描述】:

复合控制

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

你好,

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

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

父标签Label1 应该生成一个点击事件。子控件 Label2、Label3 和 Label4 将在 MouseMove 事件上分配 ToolTips,而最后一个子控件 PictureBox 应同时在 MouseMove 事件和 Click 事件上具有 ToolTips。

同样,Label2、Label3、Label4 和 PictureBox 在 Parent Label1 控件中的位置必须设置为属性,它们的文本和大小也是如此。

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

【问题讨论】:

    标签: c#


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-19
        • 1970-01-01
        • 1970-01-01
        • 2010-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多