2014-10-05 84 views
0

我有一個問題,大家好,我希望你能幫助我..如何在MouseClick事件中處理CheckBox?

我要顯示所選擇的數據行到我的文本框和複選框,並具有與該複選框和錯誤不含蓄轉換字符串類型可以爲bool一個問題,我

我我的複選框設置爲true或false保存到數據庫後,所以它會在我的DataGridView只顯示真或假未選中的複選框,然後是選項,如果它是經過凱斯...

私人void dataGridView1_CellContentClick(object sender,DataGridViewCellEventArgs e)

{ 
     foreach (Control control in this.Controls) 
     { 
      if (control is CheckBox) 
       ((CheckBox)(control)).Checked = true; 

     } 

     foreach (Control control in this.Controls) 
     { 
      if (control is CheckBox) 
       ((CheckBox)(control)).Checked = false; 
     } 
    } 

在我的鼠標單擊事件

私人無效dataGridView1_MouseClick(對象發件人,發送MouseEventArgs E)

{ 
     txtFam.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString(); 
     txtName.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); 
     txtSevereheadache.Checked =dataGridView1.SelectedRows[0].Cells[2].Value.ToString(); 
     txtBlurringvision.Checked = dataGridView1.SelectedRows[0].Cells[3].Value.ToString(); 
     txtAbdominal.Checked = dataGridView1.SelectedRows[0].Cells[4].Value.ToString(); 
     txtSeverevomiting.Checked = dataGridView1.SelectedRows[0].Cells[5].Value.ToString(); 
     txtBreathingdifficulty.Checked = dataGridView1.SelectedRows[0].Cells[6].Value.ToString(); 
     txtConvulsion.Checked = dataGridView1.SelectedRows[0].Cells[7].Value.ToString(); 
     txtEdema.Checked = dataGridView1.SelectedRows[0].Cells[8].Value.ToString(); 
     txtVaricosities.Checked = dataGridView1.SelectedRows[0].Cells[9].Value.ToString(); 
     txtFeverchills.Checked = dataGridView1.SelectedRows[0].Cells[10].Value.ToString(); 
     txtPain.Checked = dataGridView1.SelectedRows[0].Cells[31].Value.ToString(); 
+0

「和複選框是選項,如果它經歷了這種情況」 - 這甚至意味着什麼?如果你想讓人們閱讀並立即理解,請嘗試將整個問題寫得更好一些,以便他們能夠回答。 – alterfox 2014-10-05 15:34:52

+0

@alterfox例如我是一名病人,然後我遇到嚴重頭痛和視力模糊。因此,工作人員將在保存後檢查嚴重頭痛和視力模糊,它將顯示在Datagridview True(Checked)和其他False(沒有選中)當我點擊Datagridview中的數據時,我希望選中的txtFam,txtName和複選框將顯示在我的表單中,這意味着我想從我的文本框和複選框(將檢查它是否爲真)顯示選中的行。 。但我總是得到錯誤不能隱含轉換類型字符串布爾和我不知道這是什麼意思 – 2014-10-05 17:14:05

回答

0

您正在嘗試爲一個字符串值分配給布爾屬性。例如。

txtSevereheadache.Checked = dataGridView1.SelectedRows[0].Cells[2].Value.ToString(); 

首先使用調試,看看什麼是dataGridView1.SelectedRows[0].Cells[2].Value類型,這大概是足以讓你投Valuebool。所以:

txtSevereheadache.Checked = (bool) dataGridView1.SelectedRows[0].Cells[2].Value; 


如果由於某種原因dataGridView1.SelectedRows[0].Cells[2].Valuebool型的沒有,你應該分析該字符串使用Boolean.Parse方法爲布爾值。請參閱MSDN

所以,像這樣:

txtSevereheadache.Checked = Boolean.Parse(dataGridView1.SelectedRows[0].Cells[2].Value.ToString()); 


對於Convert.ToBoolean(string)Boolean.Parse(string)之間的差異看this線程。

+0

謝謝它真的有用。 – 2014-10-05 20:14:49