簡體   English   中英

C#如何檢查是否已選中任何datagridview復選框

[英]C# How to check if any datagridview checkbox is check

我想在選中任何datagridview復選框時觸發一個事件。 我嘗試了foreach,但只有在檢查了所有datagridviewcheck后才會觸發。 如果選中任何 datagridviewcheckboxcell,我想觸發一個事件。

foreach (DataGridViewRow row in dgvLocal.Rows)
{
    if ((Convert.ToBoolean(row.Cells[0].Value) == true))
    {
        //
    }               
}

使用datagridview的cellcontentclicked事件還可以使用CurrentCellDirtystateChanged來確保提交了最后一次單擊

  void grd_CurrentCellDirtyStateChanged(object sender, EventArgs e)
            {
                if (grd.IsCurrentCellDirty)
                    grd.CommitEdit(DataGridViewDataErrorContexts.Commit);
            }


    private void grd_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {


            if (e.ColumnIndex == 1) //compare to checkBox column index
            {
                DataGridViewCheckBoxCell cbx = (DataGridViewCheckBoxCell)grd[e.ColumnIndex, e.RowIndex];
                if (!DBNull.Value.Equals(cbx.Value) && (bool)cbx.Value == true)
                {
                    //checkBox is checked - do the code in here!
                }
                else
                {
                    //if checkBox is NOT checked (unchecked)
                }
            }
        }

試試看

foreach (DataGridViewRow row in dataGridView1.Rows)
{
 DataGridViewCheckBoxCell check = (DataGridViewCheckBoxCell)row.Cells[1];
 if (check.Value  == check.TrueValue)
  {
    //dosomething
  }
 else
  {
   //dosomething
  }
}

觸發CellValueChanged

private void dgvProducts_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
        if (dgvProducts.DataSource != null)
        {
            if (dgvProducts.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "True")
            {
                //do something
            }
            else
            {
               //do something
            }
        }
    }

暫無
暫無

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

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