C# 在运行时停止属性更改

标签 c# properties user-controls

我一直在尝试使用在设计器中设置的一些自定义属性来构建用户控件。但是,该控件涉及一些不应在运行时调整的互操作代码和设置。在设计者代码最初设置值后,是否有办法停止更改这些值?

最佳答案

你能修改属性定义吗?一种方法是,向属性 setter 添加一个哨兵,并且只允许一个设置操作(通常由 InitializeComponent() 完成):

private int _myProperty;
private bool _isMyPropertySet = false;
public int MyProperty
{
    set
    {
        if (!_isMyPropertySet)
        {
            _isMyPropertySet = true;
            _myProperty = value;
        }
        else
        {
            throw new NotSupportedException();
        }
    }
}

关于C# 在运行时停止属性更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/933101/

相关文章:

asp.net - 我想要一个主用户控件(一个主页面,但用于用户控件)

c# - 应用程序启动后,如何从 web.config 中读取值?

c# - 最佳实践 : database class to object class in ASP. NET MVC 验证

c# - 如何使用.Net部署sqlite

c# - 使用 ReSharper 为属性生成只读字段

delphi - 在 Delphi 2010 中迭代索引属性

properties - ServiceProcessInstaller 的帐户属性之间有什么区别

asp.net-mvc - 如何创建 MVC 用户控件

wpf - MVVM:绑定(bind)一个将构造函数参数传递给 UserControl 的 ViewModel

c# - 通过IP地址获取用户位置