繁体   English   中英

选择datagridview c#中的复选框

[英]selecting checkbox inside datagridview c#

我在datagridview中有一个dowpdownlist,一个按钮和一个复选框。

我只是在datagridview上手动创建了一个复选框列。 (这是代码)

DataGridViewCheckBoxColumn CheckboxColumn = new DataGridViewCheckBoxColumn();
            CheckBox chk = new CheckBox();
            CheckboxColumn.Width = 20;
            DataGrid1.Columns.Add(CheckboxColumn);

这是程序。
步骤1:用户将在复选框上选择项目。
第2步:用户将在下拉菜单中选择项目。
步骤3:用户将单击按钮,它将更改项目名称
在下拉列表中所选项目之前的复选框中。

这是我的问题,单击按钮后,什么都没有发生。

这是我的代码。

private void button1_Click(object sender, EventArgs e)
        {
    int x = 0;
                foreach (DataGridViewRow item in this.DataGrid1.SelectedRows)
                {
                    DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)item.Cells[1];
                    if (chk.Selected)
                    {
                    // codes here
                    }
                    else
                    {
                    //code here
                    }
                }
                x = x + 1;
         }

*编辑**

我已经对此进行了测试,它肯定有效。 将其复制并粘贴到新项目中,然后使用它。 它应该可以帮助您到达所需的位置。

   private void Form1_Load(object sender, EventArgs e)
    {

        DataGridViewCheckBoxColumn checkBox = new DataGridViewCheckBoxColumn(true);
        checkBox.HeaderText = "T/F";
        dataGridView1.Columns.Add(checkBox);

    }

    private void button1_Click(object sender, EventArgs e)
    {
        foreach (DataGridViewRow row in dataGridView1.SelectedRows)
        {

            DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)row.Cells[0];

            if (Convert.ToBoolean(chk.Value) == true)
            {
                MessageBox.Show("Value Is True");
            }

        }
    }

我建议致电的第一件事:

DataGrid1.EndEdit();

从那以后,我经历了一些错误,如果从网格列检索复选框的值之前,如果缺少此行,有时输入将不会按预期出现。

所以像这样:

private void button1_Click(object sender, EventArgs e)
{
    int x = 0;
    foreach (DataGridViewRow item in this.DataGrid1.SelectedRows)
    {
        DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)item.Cells[1];

        if (chk.Value)
        {
              // codes here for checked condition
        }
        else
        {
              //code here  for UN-checked condition
        }
      }
     x = x + 1;
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM