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

Обращение к CheckBox по имени

26.04.2024, 16:20. Показов 856. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, хочу записать невыделенные флажки.

C#
1
2
3
4
5
6
7
8
9
10
    int i;
    For (i=1; i<21; i++)
    {
         if (Controls["chBox"+i].Enabled == false)                    -- выбивается ошибка "ссылка на объект не указывает
            list1.add(i)                                                             --      на экземпляр объекта"
    }
 
 
Пробовала  : 1)     if (["chBox"+i].Enabled == false)             -- сразу ошибка
                    2)     if (НАЗВАНИЕ_ФОРМЫ["chBox"+i].Enabled == false)             -- сразу ошибка


Как обратится к названию элемента на форме?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2024, 16:20
Ответы с готовыми решениями:

Checkbox и обращение к БД
Добрый день. Есть форма, в которой предлагается выбрать формат файла и по нажатию на кнопку &quot;Поиск&quot; в dataGridView1 отображаются...

Обращение к CheckBox
Доброго времени суток. Похожей темы не нашел, а ответ очень нужен. Требуется обратится к CheckBox`у встроенному в ListView. А именно...

обращение к checkbox'ам
здравствуйте не могу сообразить, есть такая задача: в групбоксе три чекбокса, котаждый из которых определяет собственные действия ...

12
3259 / 3278 / 556
Регистрация: 17.02.2019
Сообщений: 5,191
26.04.2024, 17:36
OdinNastya, вам надо именно по имени? Или можно просто пробежаться по CheckBox и не отмеченные занести в list1
0
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
26.04.2024, 17:54
Цитата Сообщение от OdinNastya Посмотреть сообщение
if (Controls["chBox"+i].Enabled == false)
Без ошибок будет, если все i-е чекбоксы принадлежат форме.
Если часть чекбоксов находятся в групповой панели, то в массиве Controls их уже не найдёт компилятор.

Добавлено через 14 минут
C#
1
2
3
4
5
6
    for (var i = 1; i < 21; i++)
    {
        if (Controls.ContainsKey("chBox" + i) && !((CheckBox)Controls["chBox" + i]).Enabled)
            list1.Add(i);
 
    }
Так ругаться не будет (правда и работать не будет, если не найдёт чекбокс с таким именем)
0
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
27.04.2024, 07:08  [ТС]
January29, Мне нужно просто пробежаться, но я думала, что надо по имени
0
Эксперт .NET
 Аватар для Rius
13160 / 7719 / 1679
Регистрация: 25.05.2015
Сообщений: 23,513
Записей в блоге: 14
27.04.2024, 07:13
Лучший ответ Сообщение было отмечено OdinNastya как решение

Решение

В массив соберите и по нему бегайте.
1
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
27.04.2024, 08:04  [ТС]
Rius, в другом языке ты с легкость можешь по кнопкам/флажкам бегать, а тут гемр, что массив предлагаете?
Я не понимаю смысла создания массива, если у меня элементы есть и по нем могу бегать
0
Эксперт .NET
 Аватар для Rius
13160 / 7719 / 1679
Регистрация: 25.05.2015
Сообщений: 23,513
Записей в блоге: 14
27.04.2024, 08:15
Возможно сделать и стоит делать - понятия разные.
Оно вам действительно надо, понимать? Или сдать работу и забыть?
0
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
27.04.2024, 08:36  [ТС]
Rius, мне надо понять и как правильно делать для будущего.
Тогда опишу ситуацию.

У меня открывается форма настроек и я могу отключить некоторые кнопки во второй форме.
Мне надо знать какие кнопки сделать невидимыми (2 форма). Поэтому решила: 1) делаю глобальную переменную и записываю значения флажков,которые Checked=false и смотрю уже эту переменную во второй форме.
Но столкнулась с ситуацией,что не могу пробежаться по флажкам

Может вообще сейчас подскажите, как правильней сделать
0
 Аватар для roach1967
983 / 463 / 233
Регистрация: 27.06.2014
Сообщений: 1,033
27.04.2024, 09:27
OdinNastya, тогда удобнее делать так:
- создаётся глобальный массив с флажками;
C#
1
public bool[] flags = new bool[2]; // по количеству checkBox
- в каждом checkBox в поле Tag прописываете индекс флажка, которого нужно выставить в true;

- в обработчике изменения состояния checkBox (один на всех) просто выставляете нужный флаг:
C#
1
2
3
4
5
6
7
8
        private void checkBoxAll_CheckedChanged(object sender, EventArgs e)
        {
            int idx = (int)(sender as CheckBox).Tag;
            for (int i = 0; i < flags.Length; i++)
            {
                flags[i] = i == idx;
            }
        }
- ну а дальше массив можно использовать как угодно...
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
27.04.2024, 14:21
Цитата Сообщение от OdinNastya Посмотреть сообщение
Как обратится к названию элемента на форме?
C#
1
2
3
4
5
for (int i=1; i<21; i++)
{
    if (Controls.Find("chBox"+i, true)[0].Enabled == false)
        list1.add(i);
}
0
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
27.04.2024, 15:08  [ТС]
OwenGlendower, какой метод более правильный для дальнейшей работы?)
0
Эксперт .NET
 Аватар для Rius
13160 / 7719 / 1679
Регистрация: 25.05.2015
Сообщений: 23,513
Записей в блоге: 14
27.04.2024, 16:25
OdinNastya,
Вложения
Тип файла: zip OdinNastya.zip (16.1 Кб, 17 просмотров)
0
0 / 0 / 0
Регистрация: 05.10.2023
Сообщений: 116
27.04.2024, 16:58  [ТС]
спасибо большое
такой бы код сейчас не написала бы)))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2024, 16:58
Помогаю со студенческими работами здесь

Обращение к CheckBox Vba Word
Добрый вечер. Подскажите: как в visual basic можно обратиться к CheckBox, который находится в документе ворд. Важно! Элемент создается с...

Обращение по имени
Написать программу, которая запрашивает имя и выводит приветствие, используя данное имя. Заранее спасибо!

Обращение к столбцу по имени
Как обратиться к столбцу по его имени или обращение осуществляется только по Index'у ?

Обращение к объекту по имени
Добрый день, друзья :) Совсем недавно начал изучать программирование под Android. Вопрос такой: есть, допустим, 10 textView и массив...

Обращение к имени элемента
Всем добрый день! В файле App.xaml в Application Recources делаю шаблон банковской карты. Мне необходимо по клику сделать видимым label....


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru