结合winforms'控件作为预制件?

时间:2016-06-29 07:53:31

标签: winforms

在我们的winforms应用程序中,我们经常遇到以不同形式使用相同面板的情况。现在我只是将代码和设计元素从表单复制到表单,但这显然是一种可怕的做法。

所以我想创建一个可以轻松添加到其他形式的类作为"组件"。唯一的问题是能够在可视化设计器中对这个面板进行原型设计和维护,这样如果我想在将来更改面板的外观,它就会为我创建的每个类实例进行更改。

例如,我有一个提供搜索功能的面板: enter image description here

除了click / textChanged事件的代码。我想将它封装在一个类中,我可以在任何形式的构造函数中实例化和初始化,以便立即将这些控件(以及事件)添加到该表单中。现在我没有必要在接收器表单的设计器中看到控件,但是,我需要能够在设计器中的某个地方看到它们,以便在我需要的时候修改它们。

如果我以某种方式修改外观(例如添加一个额外的按钮),这些控件会立即在整个项目中发生变化,无论我在哪里实例化该类。

我知道所有这一切都可以轻松完成,只需创建一个新表单并将所有内容封装在其中,我只是想知道是否可以为一组控件完成。

1 个答案:

答案 0 :(得分:0)

您刚刚描述了用户控件的完美使用。它易于使用和直接使用。

首先将用户COntrol添加到项目中:

enter image description here

然后在用户控件上添加所需的控件:

enter image description here

构建项目,您将在工具箱上看到UserControl:

enter image description here

将它们作为标准控件添加到表单中:

enter image description here

如果更改用户控件的代码(在这种情况下添加按钮单击处理程序),uit将影响该用户控件的所有内容:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Text = "Button Clicked"
End Sub

enter image description here

注意:如果您在同一解决方案的另一个项目中拥有Control,请确保在进行任何更改时也构建该项目。