工作,我有一個DataGridView這樣的形象:DataGridView的第一行編輯不checkboxcolumn
我設置ColumnsHeaderVisible
到False
,第一列是一個DataGridViewCheckBoxColumn
。
問題是我可以用鼠標單擊取消選中所有行,但第一行不可更改。
我無法檢查/取消選中表格的第一行。
我想再說一次,我不能用鼠標點擊來做到這一點。
什麼問題?
謝謝..
工作,我有一個DataGridView這樣的形象:DataGridView的第一行編輯不checkboxcolumn
我設置ColumnsHeaderVisible
到False
,第一列是一個DataGridViewCheckBoxColumn
。
問題是我可以用鼠標單擊取消選中所有行,但第一行不可更改。
我無法檢查/取消選中表格的第一行。
我想再說一次,我不能用鼠標點擊來做到這一點。
什麼問題?
謝謝..
數據的邊界應該在DataBindingComplete事件調用後
dataGridView.ClearSelection();
編輯:
您可以通過所有行迭代在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;
}
}
它不工作.... – namco
@namco - 那dataGridView.CurrentCell = null; – MuhammadHani
所以在哪裏使用它,你能告訴我...... – namco
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());
}
}
代碼這是'DataGridView.DataSource = DataTable'或'DataGridView.DataSource = BindingSource'? – spajce
DataGridView.DataSource = DataTable – namco
我更新了我的答案。請檢查 – spajce