2013-02-27 143 views
-6

我用這個代碼,但它不工作:力複選框被選中

private void checkcheck() 
{ 
    if (checkBox1.Text == "ON") 
    { 
     checkBox1.Checked = true; 
     checkBox1.ForeColor = Color.DeepSkyBlue; 
    } 
    else 
    { 
     checkBox1.Checked = false; 
     checkBox1.ForeColor = Color.Silver; 
    } 
} 

我打電話從窗體加載事件此方法。

private void Form3_Load(object sender, EventArgs e) 
    { 
     cn.Open(); 
     SqlCommand cmd = new SqlCommand("SELECT * FROM contacts WHERE id = '" + label2.Text + "' ", cn); 
     SqlDataReader reader = cmd.ExecuteReader(); 
     if (reader.HasRows) 
     { 
      while (reader.Read()) 
      { 
       textBox1.Text = reader[1].ToString(); 
       textBox2.Text = reader[2].ToString(); 
       textBox3.Text = reader[3].ToString(); 
       textBox4.Text = reader[4].ToString(); 
       checkBox1.Text = reader[5].ToString(); 
      } 
     } 
     cn.Close(); 
     checkcheck(); 
    } 

完蛋了,形式負載,則該複選框變化根據數據,那麼前人的精力改變, 當我運行它,它pefectly獲取數據,並更改複選框開/關,但沒有COLORE或檢查

+1

你嘗試過調試,看看它裏面去了'如果(checkBox1.Text ==「ON」)' – 2013-02-27 02:35:42

+0

不,我的意思怎麼樣? – 2013-02-27 02:36:33

+0

你確定你的'checkBox1.Text'是「ON」嗎? – 2013-02-27 02:37:29

回答

1

因爲你的第一個條件是總是正確的代碼不執行else部分。

+0

那麼...怎麼辦? – 2013-02-27 02:46:09

+0

你不能假設第一個條件總是對的 – 2013-02-27 02:46:16

+0

你可以說適合你在這裏做什麼? Bcz我創建一個窗體並運行這個代碼它工作:),當我手動更改文本程序執行其他部分。 – scofield 2013-02-27 02:48:19