我在visual studio 2012中遇到了一些奇怪的行为
模拟,创建从DataSet继承的自定义控件 添加如下属性:
private string _test = "";
public string Test
{
get { return _test; }
set
{
_test = value;
MessageBox.Show(_test);
}
}
现在将组件放在winform上,并将值设置为属性Test to例如" 123" 你会看到mesagebox出现了" 123" 现在再次为此属性设置相同的值,您将看不到消息框 只有在属性中设置了不同的值后,才会再次调用setter。
如果您在例如控制台应用程序中创建一个类(并使用writeline而不是messagebox offcourse),您将看到分配相同的值会再次调用setter,但是在winform中使用自定义控件时会分配相同的值该属性的值不会再次调用setter。
为什么会这样,我该如何解决这个问题?