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

Обработчик событий для динамических checkbox'ов

30.10.2011, 08:13. Показов 3735. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите повесить события checkedchanged на checkbox'ы. Надо чтобы при свойстве checked=true _cbox[i], менялось свойство Visible=true _tbox[i]'ов

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
private void Form1_Load(object sender, EventArgs e)
        {
            int n, i =0;
            elkiNavi.ActiveBand = elki_item;
            
 
            //подключение к БД
            string connectionString = "data source=ДМИТРИЙ-ПК\\SQLEXPRESS;Initial Catalog=elki;Integrated Security=True;MultipleActiveResultSets=True";
            SqlConnection conn = new SqlConnection(connectionString);
 
            //выбор категорий
            SqlCommand cat = new SqlCommand("SELECT * FROM dbo.catDish", conn);
            //кол-во блюд
            SqlCommand countDish = new SqlCommand("SELECT COUNT(*) FROM dbo.Dish", conn);
            
            conn.Open();
 
            SqlDataReader creader = cat.ExecuteReader();
            SqlDataReader countreader = countDish.ExecuteReader();
            
            //получение кол-ва блюд
            countreader.Read();
            n = countreader.GetInt32(0);
            countreader.Close();
 
            //объявление массивов компонентов
            CheckBox[] _cbox= new CheckBox[n];
            TextBox[] _tbox = new TextBox[n];
            Label[] _lblPrice = new Label[n];
 
            while (creader.Read())
            {
                NaviGroup group_item = new NaviGroup();
                group_item.Text = creader.GetString(2);
                group_item.Expanded = false;
                group_item.Dock = DockStyle.Top;
                group_item.Caption = group_item.Text;
                elki_item.ClientArea.Controls.Add(group_item);
 
                SqlCommand dish;
                dish = new SqlCommand();
                dish.CommandText = "SELECT * FROM dbo.dish WHERE id_cat= '" + creader.GetInt32(0) + "'";
                dish.Connection = conn;
               
                SqlDataReader dreader = dish.ExecuteReader();
                while (dreader.Read())
                {
                _cbox[i] = new CheckBox();
                _cbox[i].Text = dreader.GetString(3);
                _cbox[i].Location = new Point(5, 28);
                _cbox[i].Width = 120;
                _cbox[i].BackColor = Color.White;
               
                _lblPrice[i] = new Label();
                _lblPrice[i].Text = Convert.ToString(dreader.GetInt32(4));
                _lblPrice[i].Location = new Point(235, 34);
                _lblPrice[i].Width = 120;
                _lblPrice[i].BackColor = Color.White;
 
                _tbox[i] = new TextBox();
                _tbox[i].Width = 100;
                _tbox[i].Height = 30;
                _tbox[i].Location = new Point(130, 30);
                _tbox[i].Visible = true;
 
                group_item.Controls.Add(_cbox[i]);
                group_item.Controls.Add(_lblPrice[i]);
                group_item.Controls.Add(_tbox[i]);
 
                i++;
                }//while
            }//while
 
 
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.10.2011, 08:13
Ответы с готовыми решениями:

Обработчик события для массива динамических контролов
Как создать сразу для всего массива динамически созданных контролов один одинаковый обработчик события? //В цикле picbox.Click += new...

Обработчик событий для нескольких кнопок
Доброго времени суток! У меня есть toolStrip, и на нём есть кнопка, по нажатию этой кнопки, добавляю ещё кнопку web = new...

Один обработчик для разных событий
Пытаюсь создать один обработчик событий для разных событий, например: для множества numericUpDown'ов нужно, чтоб при потере фокуса...

3
102 / 102 / 13
Регистрация: 22.10.2011
Сообщений: 328
30.10.2011, 09:21
ты лучше сделай это через JS
я не знаю, как ты отрисовываешь свою форму, но осмелюсь предположить:
если у тебя форма имеет вид

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<table class="form">
    <tr>
        <td>
            <input />
            <input type="checkbox" />
        </td>
    </tr>
</table>
<script>
$(function(){
    $('.form :checkbox').click(function(){
        $(this).parent().find(':text').toggle()
    });
});
</script>
искать свои объекты можешь как угодно, думаю разберешься.
0
615 / 539 / 115
Регистрация: 24.03.2011
Сообщений: 576
30.10.2011, 10:52
tdmitriiv, используйте Control.DataBindings - свойство
пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  for (int i = 0; i < 5; i++)
  {
      CheckBox c = new CheckBox();
      c.Location = new Point(5, i * 25);
      c.Text = "CheckBox" + i;
      c.Checked = true;
      this.Controls.Add(c);
 
      TextBox t = new TextBox();
      t.Location = new Point(110, i * 25);
      this.Controls.Add(t);
 
      t.DataBindings.Add("Visible", c, "Checked");
  }
или
Цитата Сообщение от tdmitriiv Посмотреть сообщение
Помогите повесить события checkedchanged на checkbox'ы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  for (int i = 0; i < 5; i++)
  {
      CheckBox c = new CheckBox();
      c.Location = new Point(5, i * 25);
      c.Text = "CheckBox" + i;
      c.Checked = true;
      c.Tag = i;
      this.Controls.Add(c);
 
      TextBox t = new TextBox();
      t.Name = "TextBox" + i;
      t.Location = new Point(110, i * 25);
      this.Controls.Add(t);
 
      c.CheckedChanged += new EventHandler(c_CheckedChanged);
  }
C#
1
2
3
4
  void c_CheckedChanged(object sender, EventArgs e)
  {
      this.Controls["TextBox" + (sender as CheckBox).Tag].Visible = (sender as CheckBox).Checked;
  }
4
9 / 9 / 4
Регистрация: 22.12.2010
Сообщений: 39
30.10.2011, 11:00  [ТС]
Redfex, Спасибо ОГРОМНОЕ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.10.2011, 11:00
Помогаю со студенческими работами здесь

Обработчик событий для динамически созданных контроллов
Всем привет, я столкнулся с этой проблемой, два дня назад, и до сих пор никак не могу решить эту проблему. Суть в том, что я создать...

Как создать обработчик событий для вызова winform?
Пытаюсь прикрутить 2 факторную авторизацию. У меня winform приложение Документация - Для двухфакторной авторизации необходимо передать...

Обработчик событий работает только для одного textBox
Добрый день, два текстбокса подключил к одному обработчику private void InputKey(...,...) в виндоусформ через дизайнер. Почему для первого...

Один обработчик событий для нескольких разных элементов
Суть в следующем: Есть несколько TextBox, По у молчанию в них записан одинаковый текст. Как сделать, что бы при щелчке на каждый из них...

Обработчик событий для динамических кнопок
Всем доброго времени суток. Суть вопроса такая: Необходимо сделать настраиваемую систему АРМ. То есть захожу в настройки, добавляю...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru