Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 61

Поделить 40 CheckBox на группы программно

24.12.2012, 22:57. Показов 2442. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня в форме есть 40 чекбоксов. Все их можно поделить по назначению на 3 группы. Как мне программно выделить группу чекбоксов, для которой потом буду добавлять определенную логику работы?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2012, 22:57
Ответы с готовыми решениями:

CheckBox.Location программно создаваемых CheckBox - расположить их в столбик
Цель-разместить на форме определенное количество чекбоксов - что благополучно достигнуто; и расположить их аккуратно в столбик - тут...

Изменение программно созданных TextBox по событию программно созданного CheckBox
Помогите пожалуйста! мне нужно разрешить изменение полей всех TextBox и разрешить нажимать на кнопку когда CheckBox нажат. public static...

Чтение данных с группы checkBox-ов файла pdf
Кто знает, подскажите как прочитать значение? Пишу данные в группу checkBox как и в обычные поля: objJSO.GetField("Имя...

8
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.12.2012, 23:02
Juggle, все необходимое тут Ответы на 7 самых частых вопросов по WinForms
а признак разделения знаешь только ты
0
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 61
24.12.2012, 23:10  [ТС]
nio, я заметила что это самый Ваш любимый ответ -ссылка на FAQ.
А можно поконкретней как добавить первые 15 чекбоксов в 1-ую группу, 13 во вторую и оставшиеся 7 в третью. Пока что у чекбоксов разное только название (checkbox1, checkbox2 и т.д.). Надо будет писать логику на снятие или проставление галки в любом ЧБ из группы.
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.12.2012, 23:19
Цитата Сообщение от Juggle Посмотреть сообщение
я заметила что это самый Ваш любимый ответ -ссылка на FAQ.
а какой смысл писать тысячи раз одно и то же?

Цитата Сообщение от Juggle Посмотреть сообщение
А можно поконкретней как добавить первые 15 чекбоксов в 1-ую группу, 13 во вторую и оставшиеся 7 в третью.
Самым простым будет объединить их по группам каким-то контролом (например panel) и дальше воспользоваться указанным способом, что бы вернуть все чекбоксы с группирующего контрола. Правда, это сработает если все чекбоксы одной группы находятся рядом, а не смешаны с другими группами. Иначе обычный цикл for в сочетании с тем, что указано в ссылке
0
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 61
25.12.2012, 00:58  [ТС]
В FAQ написано
C#
1
tb[i] = new System.Windows.Forms.TextBox();
т.е. идет создание новых ЧБ-ов, а у меня все ЧБ уже созданы.

Поэтому пытаюсь добавить уже созданные ЧБ вот так:
C#
1
2
3
4
5
6
7
List<CheckBox> cbList = new List<CheckBox>();
            
            for (int i = 0; i < 15; i++)
            {
                cbList.Add(checkBoxi);
 
            }
но естественно он ругается на checkBoxi. Как же правильно записать?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
25.12.2012, 01:14
Цитата Сообщение от Juggle Посмотреть сообщение
идет создание новых ЧБ-ов, а у меня все ЧБ уже созданы.

Juggle, 7-й вопрос
0
 Аватар для Doomer3D
180 / 180 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
25.12.2012, 08:09
Пишу от руки, так что ошибки исправьте, пожалуйста, сами:

C#
1
2
3
4
5
6
7
8
            List<CheckBox>[] groups = new List<CheckBox>[3];
            List<CheckBox> list;
 
            for (int i = 0; i < 3; i++)
            {
                list = groups[i] = new List<CheckBox>();
                list.AddRange(FindAllControls(this, x => x is CheckBox && object.Equals(x.Tag, i)).Cast<CheckBox>());
            }
Функция FindAllControls:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        private IEnumerable<Control> FindAllControls(Control container, Func<Control, bool> selector)
        {
            foreach (Control control in container.Controls)
            {
                if (selector(control))
                {
                    yield return control;
                }
                if (control.HasChildren)
                {
                    foreach (Control subControl in FindAllControls(control, selector))
                    {
                        yield return subControl;
                    }
                }
            }
        }
Добавлено через 2 минуты
Соответственно, всем чекбоксам первой группы надо задать Tag = 0, второй группе Tag = 1 и третьей группе Tag = 2.
1
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 61
25.12.2012, 11:54  [ТС]
Цитата Сообщение от nio Посмотреть сообщение

Juggle, 7-й вопрос
nio, в 7-ом вопросе написано
C#
1
2
3
4
5
6
7
8
foreach (Control control in Controls)
{
    TextBox tb = control as TextBox;
    if (tb != null)
    {
        tb.Text = "Text";
    }
}
а как мне создать Controls? Что это за подсказка ни с начала, ни с конца? К сожалению, мой уровень программирования не на столько высок, чтобы было понятно как применить эту часть кода.

Doomer3D, попробую вечером, спасибо.
0
 Аватар для Doomer3D
180 / 180 / 32
Регистрация: 23.11.2012
Сообщений: 344
Записей в блоге: 1
25.12.2012, 12:25
Controls - это список дочерних контролов. Он же используется в моем коде, просто с рукурсивным спуском вниз (чтобы получить список не только контролов самой формы, но и тех, что находятся на панельках, в группах и т.д.)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2012, 12:25
Помогаю со студенческими работами здесь

Изменение состояния CheckBox программно
Есть несколько элементов CheckBox (всего порядка 30шт). при обращении к любому хочу сбрасывать состояние нужных. И все работает с первого...

VBA Access. Программно создать CheckBox
Подскажите как программно создать CheckBox и разместить его на форме.

Как программно поставить флажок в checkBox?
Как программно поставить флажок в checkBox?

Программно создать CheckBox и обработчик к нему
Задача: есть форма UserForm4 с кнопкой CommandButton1 и Label1. Форма сама расположена в шаблоне документа Word под названием Normal. Надо...

Как программно изменить CheckBox в файле Excel
Помогите советом. Весь инет облазил. Не могу найти ответ. Выгружаю данные из Delphi в таблицу Excel: ExcelApp :=...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru