簡體   English   中英

更改后獲取DataGridView復選框值

[英]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")
    {

    }
}

我假設NameDataGridViewCheckBoxColumn的名稱

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM