如果我设置了Windows窗体CheckBox.Checked = true
,并且它已经为true,那么小部件会重新绘制自己吗?
我希望不会,如果它只是直接设置值,因为不会有任何变化。但我可以想象,可能有一些神奇的代码在设置值时设置了一个脏标志,而不管它已经是什么。
我只是想知道我是否应该做这样的事情来防止额外的刷新:
if (TheBox.Checked != checkBool)
{
TheBox.Checked = checkBool;
}
如果Checked值没有改变,Paint
事件就不会触发,所以我认为这意味着它没有重新绘制自己。您可以通过处理CheckBox.Paint
事件并在处理程序方法中放置断点来看到这一点。