c# - 如何从标准控件在 C# 中创建用户控件?

标签 c# .net winforms user-controls


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

public partial class MyUserControl: UserControl 
{
    public MyUserControl()
    {
        InitializeComponent();
    }
}

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

我知道我可以进行公共(public)属性设置/返回用户控件按钮或文本框,但它们会出现在设计器中,无法选择它们。

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

最佳答案

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

假设您可以按照您的要求进行操作 - 然后在表单上您可以移动用户控件按钮等 - 本质上是在表面本身上设计用户控件。好的,但是所有其他也具有该用户控件的表单呢?这就是为什么一旦您删除用户控件,它就会被修复。您不是为每个表单实例设计用户控件,而是设计控件,然后它对每个表单都是相同的。

与单击按钮相同。您想要创建一个点击事件处理程序,但根据您的要求,这将在表单中发生。但是按钮不在你的窗体上,它在你的用户控件上,它的点击事件必须在用户控件中处理,而不是父窗体。

用户控件背后的想法是不必按照您的描述进行操作。它们是预组装的积木。

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

关于c# - 如何从标准控件在 C# 中创建用户控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5873280/

相关文章:

ASP.NET 5 在项目初始化时不断崩溃 VS

.net - 如何从代码访问 Azure 证书?

c# - 向弹出消息框添加消息 C# 菜鸟问题

c# - 按值或引用返回?

c# - C# Unity 中的正则表达式

c# - Azure 函数中没有 GetQueryNameValuePairs 的定义

c# - 在 C# 中转换对象引用

c# - 从不可排序的表 SQL Server 中查询和导出

C# 子窗体在主窗体上具有灰色效果

c# - 带有 TextBox 的 CheckedListBox 过滤器