C# checkBox控制元件CheckedChanged與CheckedStateChanged區別
CheckedChanged:
當Checked屬性的值更改時就引發該事件。注意在複選框中,當ThreeState屬性為true時,單擊複選框可能不會改變Checked屬性。在複選框從Checked變為Indeterminate狀態時,就會出現這種情況。
小注:
ThreeState屬性:用來返回或設定複選框是否能表示三種狀態,如果屬性值為true時,表示可以表示:三種狀態—選中、沒選中和中間態(CheckState.Checked、CheckState.Unchecked和CheckState.Indeterminate),屬性值為false時,只能表示兩種狀態——選中和沒選中。
Checked屬性:用來設定或返回複選框是否被選中,值為true時,表示複選框被選中,值為false時,表示複選框沒被選中。當ThreeState屬性值為true時,中間態也表示選中。
CheckState 屬性:用來設定或返回複選框的狀態。在 ThreeState 屬性值為 false 時,取值有CheckState.Checked或CheckState.Unchecked。在ThreeState屬性值被設定為True時,CheckState還可以取值CheckState.Indeterminate,在此時,複選框顯示為淺灰色選中狀態,該狀態通常表示該選項下的多個子選項未完全選中。
CheckedStateChanged:
當CheckedState屬性改變時,引發該事件。CheckedState屬性的值可以是Checked 和 Unchecked。只要Checked屬性改變了,就引發該事件。另外,當狀態從Checked變為Indeterminate時,也會引發該事件。
對於同一個CheckBox 控制元件而言,進入checkBox1_CheckedChanged(object sender,EventArgse)與checkBox1_CheckStateChanged(objectsender,EventArgs e)的順序是:先進入CheckedChanged事件,再進入CheckStateChanged事件。