Dor*_*eka 3 c# datagridview winforms
我如何检查复选框的bool状态datagridview.我想true检查,false如果它是未选中的.谁能帮我.
是否有可能处理这个问题 dataGridView_CellContentClick
这是在MSDN页DataGridView的解决一点点在这里和这里.
他们特别说:
对于DataGridViewCheckBoxCell中的单击,此事件在复选框更改值之前发生,因此如果您不想根据当前值计算期望值,则通常会处理DataGridView.CellValueChanged事件.因为该事件仅在提交用户指定的值时发生(通常在焦点离开单元格时发生),所以还必须处理DataGridView.CurrentCellDirtyStateChanged事件.在该处理程序中,如果当前单元格是复选框单元格,则调用DataGridView.CommitEdit方法并传入Commit值.
所以他们建议不要使用CellClick类型的事件(因为他们从不推送值直到你离开单元格),而是使用CurrentCellDirtyStateChanged和CommitEdit方法.
所以你最终得到:
dataGridView1.CurrentCellDirtyStateChanged += new EventHandler(dataGridView1_CurrentCellDirtyStateChanged);
dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(dataGridView1_CellValueChanged);
void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "CB")
{
MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
}
}
void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
Run Code Online (Sandbox Code Playgroud)
至于获取选中的值 - 这只是DataGridViewCheckBoxCell的Value属性.
所以,如果你去:
dataGridView1.Rows[rowindex].Cells[cellindex].Value
Run Code Online (Sandbox Code Playgroud)
你得到一个与复选框相对应的布尔值(在提交更改后).
| 归档时间: |
|
| 查看次数: |
8849 次 |
| 最近记录: |