如何处理 MouseClick 事件中的 CheckBox?
Posted
技术标签:
【中文标题】如何处理 MouseClick 事件中的 CheckBox?【英文标题】:How to handle the CheckBox in MouseClick events? 【发布时间】:2014-11-29 23:57:05 【问题描述】:我有一个问题,我希望你能帮助我..
我想在我的文本框和复选框中显示选定的数据行,但我遇到了 CheckBox 问题,并且错误无法将类型字符串隐式转换为布尔值
保存到数据库后,我将复选框设置为 true 或 false,因此它只会在我的 Datagridview 中显示 True 或 False not Checked,如果遇到这种情况,Checkbox 是选项...
private 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;
在我的鼠标点击事件中
private void dataGridView1_MouseClick(object sender, 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();
【问题讨论】:
"如果它经历了这种情况,复选框是选项" - 这甚至意味着什么?如果您希望人们阅读并立即理解,请尝试更好地表述整个问题,以便他们回答。 @alterfox 例如我是一名患者,然后我经历了严重的头痛和视力模糊。所以工作人员将在保存后检查严重的头痛和视力模糊,它会在 Datagridview 中显示 True(选中)和其他错误(未选中)当我单击 Datagridview 中的数据时,我希望选中的 txtFam、txtName 和复选框将显示在我的表单中,这意味着我想从我的文本框和复选框中显示选定的行(将是检查是否为真)..但我总是得到错误,无法将类型字符串隐式转换为布尔值,我不知道这是什么意思 【参考方案1】:您正在尝试将字符串值分配给布尔属性。例如
txtSevereheadache.Checked = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
先用debug,看看dataGridView1.SelectedRows[0].Cells[2].Value
是什么类型,大概把Value
转换成bool
就够了。所以:
txtSevereheadache.Checked = (bool) dataGridView1.SelectedRows[0].Cells[2].Value;
如果由于某种原因dataGridView1.SelectedRows[0].Cells[2].Value
不是bool
类型,则应使用Boolean.Parse
方法将字符串解析为布尔值。在MSDN 上查看。
所以,类似:
txtSevereheadache.Checked = Boolean.Parse(dataGridView1.SelectedRows[0].Cells[2].Value.ToString());
有关Convert.ToBoolean(string)
和Boolean.Parse(string)
之间的区别,请参阅this 线程。
【讨论】:
以上是关于如何处理 MouseClick 事件中的 CheckBox?的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 ReactJS 中的 `onKeyPress` 事件?