2012-11-09 71 views
0

我有一个dowpdownlist,一个按钮和一个复选框在datagridview内。选择datagridview内的复选框c#

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

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

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

这是我的问题 点击按钮后,nothings发生。

这是我的代码。

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; 
     } 
+0

是'button1_Click'事件触发?如果不是,则可能没有将事件处理程序链接到按钮单击事件。 – MoonKnight

+0

是的,它是射击。它不会进入我使用断点时的状态。 – user1647667

+0

'this.DataGrid1.SelectedRows.Count'的值是什么? 'chk'变量的目的是什么?这似乎没用。 – NeverHopeless

回答

1

* EDITED **

我测试过这一点,它肯定工程。复制并粘贴到一个新的项目中并与之一起玩。它应该可以帮助你到达你需要的地方。

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

     } 
    } 
+0

即使我声明CheckState CheckState = default(CheckState),CheckState.Equals也有错误; – user1647667

+0

我试过这个,但checkstate.equals上有错误 – user1647667

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