[英]Get DataGridView checkbox value after changed
我有幾個列的DataGridView
,每行代表我的對象有幾個屬性,如名稱,ID等更改我的Name column
Checkbox
我想更新我的對象如何獲得我的列Checknox
狀態? 這是我嘗試過的:
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView1.IsCurrentCellDirty)
{
dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "Name")
{
}
}
我假設Name
是DataGridViewCheckBoxColumn
的名稱
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "Name")
{
var isChecked = dataGridView1[e.ColumnIndex, e.RowIndex].Value as bool? ?? false;
//rest of logic
}
}
這是最簡單,最安全的方式。
要遍歷行中的所有單元格,請使用以下代碼:
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
foreach (DataGridViewCell cell in row.Cells)
{
object value = cell.Value;
}
也許您可以使用FindControl()
來獲取復選框的狀態:
CheckBox cbName = (CheckBox)dataGridView1.Columns[e.ColumnIndex].FindControl("cbName");
checkState = cbName.CheckState.toString();
要么
isChecked = cbName.Checked;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.