簡體   English   中英

如何知道datagridview中的特定復選框是否已選中?

[英]How to know a specific checkbox inside datagridview is checked or not?

我有一個gridview,它有2列,一個是文本框列,另一個是復選框列,如何知道選中了哪個復選框。

在此輸入圖像描述

如圖所示,假設選中了任何復選框,我想將相應的文本框值顯示給該復選框。

任何人都可以幫助我?我嘗試了下面的代碼,但我面臨的問題是,一旦我點擊下一個復選框后顯示值,然后顯示之前檢查的復選框值。

dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(dataGridView1_CellValueChanged);

  void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {  
        object tempObj = dataGridView1.Rows[e.RowIndex].Cells[1].Value;
         dataGridView1_CurrentCellDirtyStateChanged(sender, e);

        if (((e.ColumnIndex) == 1) && ((bool)dataGridView1.Rows[e.RowIndex].Cells[1].Value))
        {
            MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());

        }
    }
 private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
    {
        if (dataGridView1.IsCurrentCellDirty)
        {
            dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
        }
    }

    private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
        if (((e.ColumnIndex) == 1) && ((bool)dataGridView1.Rows[e.RowIndex].Cells[1].Value))
        {
            MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());

        }
    }

以下鏈接幫助我理解了cellvalue_changed和cell_content_click的概念.http: //msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellvaluechanged.aspx

在這些鏈接的幫助下,我終於得到了我的問題的解決方案

就這么簡單

//replace the row number and column name with your own 
if ((bool)dataGridView1.Rows[0].Cells["Column1"].Value)
 {
       //do your work
 }
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex > -1 && e.ColumnIndex > -1)
    label1.Text = dataGridView1.Rows[e.RowIndex].Cells["Col1"].Value.ToString();
}
private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == *someIndex*)
    {
        DataGridViewCheckBoxCell cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex] as DataGridViewCheckBoxCell;
        if (cell != null)
        {
            if (cell.EditingCellValueChanged)
            {
                //CheckBox has been clicked
            }

            //here how to get the checkBoxCell value
            var cellChecked = cell.EditingCellFormattedValue;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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