如何在标准控件中使用C#创建用户控件?

mj8*_*j82 2 .net c# user-controls winforms


我想在C#Visual Studio 2010中创建标准控件的用户控件,它在设计时保持独立.
问题是,当我创建这样的标准用户控件时:

public partial class MyUserControl: UserControl 
{
    public MyUserControl()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

我在其上添加了2个按钮和1个文本框,它们成为UserControl的一部分.
然后,当设计控件并将其添加到表单上时,我可以移动它,调整大小等,但我无法单击或选择Button1或Button2或TextBox1.
另外,双击button1不会创建button1_click事件,而是创建UserControl_Load事件.
我希望实现类似于DataBindingNavigator控件的效果 - 您可以在其中单独单击每个按钮.

我知道我可以创建公共属性设置/返回用户控件按钮或文本框,但它们将出现在设计器中,将无法选择它们.

您认为可以使用标准控件吗?如果是这样,怎么办?
最好的问候,
mj82

Sis*_*hus 7

你不能这样做,因为这样做没有意义.

假设您可以按照自己的要求进行操作 - 然后在表单上,​​您可以移动用户控制按钮等 - 实际上是在表面上设计用户控件.好的,但是那些也有用户控制权的其他形式呢?这就是为什么一旦你删除用户控件就会修复它.您没有为每个表单实例设计用户控件,您设计控件然后对每个表单都是相同的.

与单击按钮相同.您想要创建一个单击事件处理程序,但根据您要求的内容,将在表单中发生.但是按钮不在您的表单上,它位于您的用户控件上,它的click事件必须在用户控件中处理,而不是父表单.

用户控制背后的想法是不必做你描述的.它们是预装配的构件.

DataBindinghNavigator只不过是一个工具条.如果您想要这种行为,只需使用工具条.