2012-08-09 52 views
2
public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void checkBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     textBox1.Enabled = checkBox1.Checked; 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     checkBox1.Checked = false; 
    } 

我在加載事件處理程序中設置了檢查狀態,爲什麼在這種情況下,CheckedChanged沒有被觸發? 如果我點擊複選框,那麼CheckedChanged會被觸發。CheckBox.CheckedChanged沒有在winform上觸發

+0

@danbystrom時使用的內部代碼,是它被調用。 – Benny 2012-08-09 07:29:47

+0

@Rohit,你的鏈接有什麼意義? – Benny 2012-08-09 07:30:07

回答

7

如果您的選中狀態最初是false,那麼再次將其設置爲false不會觸發CheckedChanged事件。
這是因爲選中狀態實際上不是改變

這是試圖設置CheckBox1.Checked屬性

public void set_Checked(bool value) 
{ 
    if (value != this.Checked) 
    { 
     this.CheckState = value ? CheckState.Checked : CheckState.Unchecked; 
    } 
} 
+0

...因爲檢查的狀態實際上並未改變*。你聽起來像這是一個錯誤。 – 2012-08-09 07:30:06

+0

你說得對,我很愚蠢。 – Benny 2012-08-09 07:33:12

+0

@CodyGray是的,加入你的觀察答案 – Steve 2012-08-09 07:33:17