0

我在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;
         }
4

2 回答 2

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");
            }

        }
    }
于 2012-11-09T09:43:52.290 回答
0

我建议打电话的第一件事是:

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;
 }
于 2012-11-12T09:41:41.947 回答