Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 26.04.2015
Сообщений: 5
1
.NET 4.x

TreeView и CheckBox

30.10.2017, 22:34. Показов 6304. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер. У меня есть TreeView с включенным свойством CheckBoxex, получается как на первой картинке.

Когда ставлю галочку корневому узлу, автоматически отмечаются и дочерние узлы с помощью такого кода:
C#
1
2
3
4
5
6
7
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
{
       foreach (TreeNode child in e.Node.Nodes)
       {
            child.Checked = e.Node.Checked;
       }
}
Если нажимать не быстро, галочки нормально ставятся и снимаются. На первой gif.
Но если нажимать быстро, получается так как на второй gif.
Галочка поставится и тут же уберется, но дочерченные узлы так и останутся быть выделенными, и наоборот.
Миниатюры
TreeView и CheckBox  
Изображения
  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2017, 22:34
Ответы с готовыми решениями:

CheckBox в TreeView
Здравствуйте. Подскажите, пожалуйста! Имеется дерево. Нужно, чтобы: 1. при выставлении флага на...

TreeView с CheckBox-ами только у дочерних узлов, а не у корневых
Хочу чтоб у дерева элемента treeView не было чекбоксов на верхнем уровне дерева (Parent) а на...

TreeView и Checkbox. Выделить дочерние элементы, если выделен родительский
Доброго времени суток! Подскажите, как сделать, чтобы при выделении CheckBox напротив...

Checkbox в TreeView у конкретных узлов
Доброе время суток. Есть TreeView, у определенных узлов которого требуются checkbox'ы. Если...

5
burning1ife
1462 / 1284 / 293
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
31.10.2017, 04:01 2
Я почитал, что это какой-то баг в Win7. Попробуйте node.Enabled = false перед
C#
1
2
3
4
foreach (TreeNode child in e.Node.Nodes)
{
        child.Checked = e.Node.Checked;
}
И node.Enabled = true после.
Или что-то в таком духе.
0
0 / 0 / 0
Регистрация: 26.04.2015
Сообщений: 5
31.10.2017, 14:20  [ТС] 3
Сижу на Windows 10.

Пробовал блокировать TreeView.
C#
1
2
treeView1.Enabled = false;
treeView1.Enabled = true;
Не помогает.
Даже не знаю что делать, а так оставлять не хочется.
Может что-то посоветуете?
0
burning1ife
1462 / 1284 / 293
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
31.10.2017, 16:16 4
Лучший ответ Сообщение было отмечено Vergiliy1 как решение

Решение

Вот такой способ с переопределением WndProc решает проблему
C#
1
2
3
4
5
6
7
8
9
10
11
 public class MyTreeView:TreeView
    {
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x203)
                m.Result = IntPtr.Zero;
            else
                base.WndProc(ref m);
        }
 
    }
1
160 / 148 / 92
Регистрация: 30.03.2011
Сообщений: 569
31.10.2017, 16:26 5
Лучший ответ Сообщение было отмечено Vergiliy1 как решение

Решение

Некорректность заложена в самом TreeView. Чтобы исключить Ваш эффект, нужно отключить обработку двойного клика.
https://stackoverflow.com/ques... t-checkbox
1
0 / 0 / 0
Регистрация: 26.04.2015
Сообщений: 5
31.10.2017, 17:39  [ТС] 6
kenny69, MVK, Огромное вам спасибо. Я конечно не совсем понимаю как это работает, но все просто супер, работает как надо.
0
31.10.2017, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2017, 17:39
Помогаю со студенческими работами здесь

CheckBox в TreeView [отслеживание и реакция checkbox]
Приветствую! Прошу помощи, на данный момент имеется такой код: procedure TForm6.FormShow(Sender:...

Treeview checkbox
Помогите пожалуйста. Не совсем понимаю, как сделать из обычного древовидного списка, древовидный...

Checkbox и TreeView в DBGridEh
Добрый день всем. Помогите разобраться с гридом - строю дерево из БД через MemTable. Выводится, все...

Помогите использовать CheckBox в TreeView !
Кто-нибудь покажите пожалуйста пример с использованием CheckBox в TreeView.... Напишите код или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru