Проблема синхронизации состояния чекбоксов в TreeView
От: ST1 Россия  
Дата: 13.02.13 15:18
Оценка:
Есть дерево с чекбоксами с одинарным уровнем вложенности. При отмечании корневого узла, выставляю соответствующее состояние в потомках с помощью кода:
Private Sub OnCorrTreeCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles corrTree_.AfterCheck
    For Each child As TreeNode In node.Nodes
        child.Checked = e.Node.Checked
    Next
End Sub

Так вот если быстро щелкать родительский узел, он может отображаться выделенным, а его потомки нет. Соответственно следующий клик отмечает все дочерние,а корневой не изменяется. В интернетах люди тоже сталкивались, решение я не нашел.
Re: Проблема синхронизации состояния чекбоксов в TreeView
От: MAMOHT  
Дата: 13.02.13 16:37
Оценка:
Здравствуйте, ST1, Вы писали:

ST1>Есть дерево с чекбоксами с одинарным уровнем вложенности. При отмечании корневого узла, выставляю соответствующее состояние в потомках с помощью кода:

ST1>
ST1>Private Sub OnCorrTreeCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles corrTree_.AfterCheck
ST1>    For Each child As TreeNode In node.Nodes
ST1>        child.Checked = e.Node.Checked
ST1>    Next
ST1>End Sub
ST1>

ST1>Так вот если быстро щелкать родительский узел, он может отображаться выделенным, а его потомки нет. Соответственно следующий клик отмечает все дочерние,а корневой не изменяется. В интернетах люди тоже сталкивались, решение я не нашел.

Завести отдельный поток, который будет на входе принимать чекбоксы, ставить их в свою очередь и потом уже чекать их.

Либо, блокировать дерево, пока все чекбоксы не прочекались. Чтоб неповадно было чекать так быстро.
Re[2]: Проблема синхронизации состояния чекбоксов в TreeView
От: ST1 Россия  
Дата: 13.02.13 17:51
Оценка:
MAM>Завести отдельный поток, который будет на входе принимать чекбоксы, ставить их в свою очередь и потом уже чекать их.

MAM>Либо, блокировать дерево, пока все чекбоксы не прочекались. Чтоб неповадно было чекать так быстро.

Оказалось это бага: http://stackoverflow.com/questions/3174412/winforms-treeview-recursively-check-child-nodes-problem
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.