2013-01-19 26 views
0

工作,我有一個DataGridView這樣的形象:DataGridView的第一行編輯不checkboxcolumn

enter image description here

我設置ColumnsHeaderVisibleFalse,第一列是一個DataGridViewCheckBoxColumn

問題是我可以用鼠標單擊取消選中所有行,但第一行不可更改。

我無法檢查/取消選中表格的第一行。

我想再說一次,我不能用鼠標點擊來做到這一點。

什麼問題?

謝謝..

+0

代碼這是'DataGridView.DataSource = DataTable'或'DataGridView.DataSource = BindingSource'? – spajce

+0

DataGridView.DataSource = DataTable – namco

+0

我更新了我的答案。請檢查 – spajce

回答

0

數據的邊界應該在DataBindingComplete事件調用後

dataGridView.ClearSelection(); 

DataBindingComplete Event

編輯:

您可以通過所有行迭代在DataBindingCompleteEvent中

private void dataGridView_DataBindingComplete(object sender, 
    DataGridViewBindingCompleteEventArgs e) 
{ 
    for (int i = 0; i < dataGridView.Rows.Count - 1; i++) 
    { 
     dataGridView.Rows[i].Cells[0].Value = false; 
    } 
} 
+0

它不工作.... – namco

+0

@namco - 那dataGridView.CurrentCell = null; – MuhammadHani

+0

所以在哪裏使用它,你能告訴我...... – namco

0
private void Form1_Load(object sender, EventArgs e) 
     { 
      dataGridView1.CellContentClick += new DataGridViewCellEventHandler(dataGridView1_CellContentClick); 
     } 

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
     { 
      if (e.ColumnIndex == 0) 
      { 
       dataGridView1[0, e.RowIndex].Value = !(bool)dataGridView1[0, e.RowIndex].Value; 

      //Or 
      //bool IsBool = false; 
      //IsBool = bool.TryParse(dataGridView1[0, e.RowIndex].EditedFormattedValue.ToString(), out IsBool); 
      //if (IsBool) 
      // dataGridView1[0, e.RowIndex].Value = IsBool; 
      } 
     } 

編輯:放置在CellClick event

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
     { 
      if (e.ColumnIndex == 0) 
      { 
       //Find primaykey from dataTable 
       DataRow[] Rows = dataTable.Select("Id = '" + dataGridView1[1, e.RowIndex].EditedFormattedValue.ToString() + "'"); 
       Rows[0]["CheckBoxes"] = !bool.Parse(Rows[0]["CheckBoxes"].ToString()); 
      } 
     } 
+0

當我點擊單元格(0,0)它不會觸發CellContentClick事件... – namco

+0

這很奇怪,嘗試調試或放置一個斷點:) – spajce

+0

我更新了我的答案 – spajce