Ошибка обновления TreeView в .net Framework - PullRequest
1 голос
/ 06 июня 2010

Рассмотрим следующий код:

Dim Working As Boolean = False
Private Sub TreeView1_AfterCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterCheck
    If Working Then Exit Sub
    Working = True
    e.Node.Checked = Not e.Node.Checked
    Working = False
End Sub

Private Sub TreeView1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseClick
    If e.Button = Windows.Forms.MouseButtons.Right Then MsgBox("Checked = " & TreeView1.SelectedNode.Checked)
End Sub

Где TreeView1 - это TreeView, добавленное к форме, для CheckBoxes установлено значение true и добавлен один узел. Код в основном отменяет любую проверку узлов, происходящую в форме.

Один щелчок по верхнему узлу для проверки его работоспособности: ваш щелчок немедленно отменяется. Тем не менее, если дважды щелкнуть флажок, будет отображаться галочка . Но проверка состояния проверки с помощью правого клика приведет к диалогу Checked = False.

Как получилось? Это ошибка (я использую последнюю .Net Framework 4.0, и он тоже появляется в 2.0), или я здесь что-то не так делаю? Есть ли работа вокруг?

РЕДАКТИРОВАТЬ : Кроме того, событие MouseDoubleClick не вызывается до повторного щелчка.

РЕДАКТИРОВАТЬ 2: Опубликовал отчет об ошибке в Microsoft Connect

РЕДАКТИРОВАТЬ 3 : См. Также этот отчет об ошибках .

1 Ответ

1 голос
/ 06 июня 2010

Это похоже на ошибку для меня. Флажок четко установлен на экране, но API утверждает, что он не установлен.

Один вопрос, который приходит на ум, это то, что вы пытаетесь достичь? У вас есть код, который отменяет действие пользователя по установке флажка ... Зачем начинать этот флажок, если вы хотите запретить его проверку?

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