Dot-Net
Windows 窗體的 CheckBox CheckedChanged 與 CheckStateChanged
Windows 窗體的
CheckBox控制項同時實現CheckedChanged和CheckStateChanged事件。據我所知,當複選框的選中狀態發生更改時,兩者都會觸發。
CheckedChanged之前CheckStateChanged,但除此之外我沒有看到任何區別。我錯過了什麼嗎?是否應該優先於另一個?
我的猜測是它與三態復選框有關。這是 CheckState 設置器的核心:
if (this.checkState != value) { bool flag = this.Checked; this.checkState = value; if (base.IsHandleCreated) { base.SendMessage(0xf1, (int) this.checkState, 0); } if (flag != this.Checked) { this.OnCheckedChanged(EventArgs.Empty); } this.OnCheckStateChanged(EventArgs.Empty); }
CheckState(因此 CheckStateChanged)允許使用可以具有三個值的複選框:它可以被選中、未選中或“不確定”——即,它的ThreeState設置為 true。
如果您不使用 ThreeState,那麼 CheckedChanged 就是您所需要的。