首页 文章

如何在MouseClick事件中处理CheckBox?

提问于
浏览
0

我有一个问题伙伴,我希望你能帮助我..

我想将所选数据行显示到我的文本框和复选框,我有一个问题与CheckBox和错误不能隐含转换类型字符串为bool

保存到数据库后,我将我的Checkbox设置为true或false,这样它将在我的Datagridview中显示True或False not Checked,如果它经历了Case,则Checkbox是Option ...

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();

1 回答

  • 0

    您正在尝试将字符串值分配给布尔属性 . 例如 .

    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 方法将字符串解析为boolean . 在MSDN上看到它 .

    所以,像:

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

    对于 Convert.ToBoolean(string)Boolean.Parse(string) 之间的差异,请参见this线程 .

相关问题