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

TreeView и CheckBox

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

Студворк — интернет-сервис помощи студентам
Добрый вечер. У меня есть 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2017, 22:34
Ответы с готовыми решениями:

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

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

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

5
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
31.10.2017, 04:01
Я почитал, что это какой-то баг в 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  [ТС]
Сижу на Windows 10.

Пробовал блокировать TreeView.
C#
1
2
treeView1.Enabled = false;
treeView1.Enabled = true;
Не помогает.
Даже не знаю что делать, а так оставлять не хочется.
Может что-то посоветуете?
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
31.10.2017, 16:16
Лучший ответ Сообщение было отмечено 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
Лучший ответ Сообщение было отмечено Vergiliy1 как решение

Решение

Некорректность заложена в самом TreeView. Чтобы исключить Ваш эффект, нужно отключить обработку двойного клика.
https://stackoverflow.com/ques... t-checkbox
1
0 / 0 / 0
Регистрация: 26.04.2015
Сообщений: 5
31.10.2017, 17:39  [ТС]
kenny69, MVK, Огромное вам спасибо. Я конечно не совсем понимаю как это работает, но все просто супер, работает как надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2017, 17:39
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru