gpt4 book ai didi

c# - 如何防止 UserControl 的使用者看到该控件的子控件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:47:08 25 4
gpt4 key购买 nike

如果在 C# 中创建 Windows UserControl,则该 UserControl 的“子”控件将通过“Controls”集合公开。也就是说,您的用户控件的使用者可以引用 Controls 集合并获得对内部控件的访问权限。

有没有一种方法可以划分这样的设计,使消费者无法访问 UserControl 的设计者未明确公开的任何内容?

示例:我有一个用户控件,它在内部有两个 TextBox 控件。我的 UserControl 的使用者可以编写以下内容:

MyControl1.Controls[0].Enabled = false;

有没有一种方法(例如)让“Controls”属性返回一个空集合,以便消费者无法摆弄用户控件的内部工作?

UserControl 应该公开“Control”会公开的几乎所有属性,而不是允许访问其内部工作的集合,这似乎是合理的。

谢谢,罗斯

最佳答案

不知道这是否适用于所有情况,但它似乎在一个非常简单的测试中。

public partial class UserControl1 : UserControl
{
private ControlCollection _controls;

public UserControl1()
{
InitializeComponent();

_controls = new ControlCollection(this);
}

new public ControlCollection Controls
{
get
{
return (_controls != null ? _controls : base.Controls);
}
}
}

当然,如果用户控件想要访问它自己的“控件”集合(并且必须使用 base.Controls),则需要小心。

关于c# - 如何防止 UserControl 的使用者看到该控件的子控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5540993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com