2014-10-05 87 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