我一直在尝试使用在设计器中设置的一些自定义属性来构建用户控件。但是,该控件涉及一些不应在运行时调整的互操作代码和设置。在设计者代码最初设置值后,是否有办法停止更改这些值?
最佳答案
你能修改属性定义吗?一种方法是,向属性 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/