gpt4 book ai didi

c# - 如何检查datagridview中的Checkbox是否被选中

转载 作者:行者123 更新时间:2023-11-30 14:38:26 24 4
gpt4 key购买 nike

我如何检查 datagridview 中复选框的 bool 条件。如果选中,我想要 true,如果未选中,我想要 false。谁能帮帮我。

是否可以在 dataGridView_CellContentClick 中处理此问题

最佳答案

这在 DataGridView 的 MSDN 页面上得到了一些解决 herehere .

他们特别说:

For clicks in a DataGridViewCheckBoxCell, this event occurs before the check box changes value, so if you do not want to calculate the expected value based on the current value, you will typically handle the DataGridView.CellValueChanged event instead. Because that event occurs only when the user-specified value is committed, which typically occurs when focus leaves the cell, you must also handle the DataGridView.CurrentCellDirtyStateChanged event. In that handler, if the current cell is a check box cell, call the DataGridView.CommitEdit method and pass in the Commit value.

因此他们建议不要使用 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);
}

至于获取选中的值 - 这只是 DataGridViewCheckBoxCell 的 Value 属性。

所以如果你去:

dataGridView1.Rows[rowindex].Cells[cellindex].Value 

您会得到一个与复选框对应的 bool 值(在提交更改后)。

关于c# - 如何检查datagridview中的Checkbox是否被选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7928498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com