Флажок DataGridView не обновляется, пока не будет нажат другой элемент управления - PullRequest
0 голосов
/ 29 июня 2018

Я установил флажок заголовка ( из этого ответа ) для моего DataGridView, который проверяет / снимает все флажки. Это работает для всех флажков, кроме первого. Первый флажок будет обновлять свое состояние только после нажатия на другой элемент управления, как показано здесь:

GIF

И даже позже я заметил, что флажок, который не обновляет свое состояние, является последним флажком, на котором был установлен щелчок вручную.

enter image description here

Если честно, я даже не совсем уверен, что происходит. Однако я попытался создать невидимую фиктивную кнопку и 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;
    }
}

1 Ответ

0 голосов
/ 29 июня 2018

Похоже, я только пытался обновить / обновить / аннулировать ячейку флажка, а не DataGridView, а также использовал неправильные методы.

Вызов RefreshEdit в моем DataGridView (myGridView.RefreshEdit()) обновил состояние флажка.

Я до сих пор не уверен, почему именно это произошло, но это все исправляет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...