![](/img/trans.png)
[英]ComboBox added programmatically to DataGridView doesn't open until after the cell loses focus and then is clicked on again
[英]DataGridView checkbox doesn't update until another control is clicked on
我為DataGridView實現了一個標題復選框( 來自此答案 ),該復選框選中/取消選中所有復選框。 它適用於除第一個復選框以外的所有復選框。 僅在單擊另一個控件后,第一個復選框才會更新其狀態,如下所示:
甚至后來,我注意到不更新其狀態的復選框是手動單擊的最后一個復選框。
老實說,我什至不完全知道發生了什么。 我嘗試創建的是一個不可見的虛擬按鈕,然后執行PerformClick()
,希望將其視為對控件的單擊並更新復選框的狀態。
我還查看了Refresh()
, Update()
和Invalidate()
,但是復選框單元格沒有這些方法,而且我做不到。
選中/取消選中標題復選框時,將啟動此功能:
private bool selectAllChecked = false;
private void SelectAll(object sender, EventArgs e) {
selectAllChecked = !selectAllChecked;
foreach (DataGridViewRow row in myGridView.Rows) {
DataGridViewCheckBoxCell checkb = (DataGridViewCheckBoxCell)row.Cells["Checkbox"];
checkb.Value = selectAllChecked;
}
}
看起來我只是嘗試刷新/更新/使復選框單元格無效,而不是DataGridView,並且我使用了錯誤的方法。
在DataGridView上調用RefreshEdit ( myGridView.RefreshEdit()
)更新了復選框的狀態。
我仍然不確定為什么甚至會發生這種情況,但這可以解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.