簡體   English   中英

在單擊另一個控件之前,DataGridView復選框不會更新

[英]DataGridView checkbox doesn't update until another control is clicked on

我為DataGridView實現了一個標題復選框( 來自此答案 ),該復選框選中/取消選中所有復選框。 它適用於除第一個復選框以外的所有復選框。 僅在單擊另一個控件后,第一個復選框才會更新其狀態,如下所示:

GIF

甚至后來,我注意到不更新其狀態的復選框是手動單擊的最后一個復選框。

在此處輸入圖片說明

老實說,我什至不完全知道發生了什么。 我嘗試創建的是一個不可見的虛擬按鈕,然后執行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上調用RefreshEditmyGridView.RefreshEdit() )更新了復選框的狀態。

我仍然不確定為什么甚至會發生這種情況,但這可以解決。

暫無
暫無

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

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