簡體   English   中英

DatagridView 復選框已選中?

[英]DatagridView Checkbox Checked?

我在 datagridview windows 表單中有一個復選框,並且有一個事件處理程序 cell_Click on cell click 我檢查了 datagridview 列的復選框,如果單元格也被選中,它顯示為真(即復選框未選中,只有數據網格查看單元格被選中)並且未選中復選框。我嘗試了列 gettype 並發現它顯示 DatagridViewCheckBox 但檢查值錯誤的類型。???

如果我理解正確,您是說復選框值與基礎數據不一致?

這很可能是因為數據已經更新並且是“臟的”,例如它還沒有提交到數據源。 如果您添加這樣的事件處理程序:

private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
   if (dataGridView1.CurrentCell is System.Windows.Forms.DataGridViewCheckBoxCell)
   {
      dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
   }
}

然后應該更新數據源,當您查詢單元格時,您將擁有正確的復選框 state。

我找到了我的問題的答案。這個鏈接是幫助我找到解決方案的鏈接。 克萊德和伊恩的兩個答案也是其中的一部分謝謝。 鏈接在這里。 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.currentcelldirtystatechanged.aspx

這里有幾件事:

  • 單元格單擊事件僅表示用戶在數據網格視圖上使用鼠標按鈕單擊,您正在尋找的可能是 CellValueChanged
  • 此事件將為您提供更改的單元格的坐標。 您應該檢查它是否在您的復選框列中,然后獲取對單元格的引用,您可以檢查 cell.Value 以查看它是真還是假。 您不會在 DataGridViewCheckBoxColumn 上找到任何值——它將位於單元格級別,並且您將始終找到存儲在 cell.Value 中的值,無論它是哪種類型的列。

暫無
暫無

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

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