c# - 在 Winform 中访问用户控件的控件属性的正确方法是什么?

标签 c# .net winforms user-controls

我创建了这个用户控件:

enter image description here

我将该用户控件添加到主窗体,现在我想对其进行自定义。 因此,我必须向这 3 个按钮添加文本,在标签中添加文本,填充列表框并为按钮设置点击事件。

正确的做法是什么?

我在网上四处查看,显然这样做的方法是在用户控件中添加公共(public)属性,这将公开我需要的控件的个别属性。

类似于:

    public string Button1Text
    {
        get
        {
            return btn1.Text;
        }
        set
        {
            btn1.Text = value;
        }
    }

如果我走这条路,我将不得不向这个简单的用户控件添加相当多的公共(public)属性。

但是像这样在用户控件中公开整个控件不是更容易吗?

    public Button MyButton1
    {
        get { return this.btn1; }
        set { this.btn1 = value; }
    }

这样主窗体就可以根据需要简单地访问控件及其属性。

最佳答案

从封装的角度来看,第一种方法更好。第二种方法使您的控件的用户(表单)依赖于您的控件的 View ,这可以防止将来更改 View 。

关于c# - 在 Winform 中访问用户控件的控件属性的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370534/

相关文章:

c# - 如何在 C# 上获取所有 SQl 数据类型的列表?

c# - 我应该在每次交易后关闭套接字(TCPIP)吗?

c# - 静态构造函数性能以及为什么我们不能指定 beforefieldinit

c# - Google 建议文本框(自动完成)

c# - 任何好的 Winforms 向导库?

c# - 需要架构指导?

c# - 在 C# 扩展方法中订阅事件是不好的做法吗?

.net - 如何让 "dnu"命令在 OS X 上运行?

c# - Tuple<List<string>,List<string>> 在调用 .AddRange 时给出 NullReferenceException

c# - TCP 客户端有时会合并数据包