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

Событие по click, нахождение созданного элемента

01.01.2019, 10:57. Показов 2520. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Осваиваю C# и столкнулся с проблемой которую не могу решить по причине незнания...Прошу помочь т.к. перерыв интернет не нашёл разумного ответа.
Вот код:
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
        private void button2_Click(object sender, EventArgs e)
        {
            kolvo += 1;
            lb1.Text = kolvo.ToString();
            Form form = new Form();
            int y = 10;
            Button[] bt = new Button[10];
            TextBox[] tb = new TextBox[10];
 
            for (int i = 0; i < 10; i++)
            {
                bt[i] = new Button();
                bt[i].Text = "Click me";
                bt[i].Location = new Point(10, y);
                bt[i].Click += open_id(i);
                form.Controls.Add(bt[i]);
                tb[i] = new TextBox();
                tb[i].Text = i.ToString();
                tb[i].Location = new Point(128, y);
                form.Controls.Add(tb[i]);
                y += 50;
            }
            form.AutoSize = true;
            form.FormBorderStyle = FormBorderStyle.None;
            form.WindowState = FormWindowState.Maximized;
            form.TopMost = true;
 
 
            form.Show();
 
        }
 
 
        public static void open_id(int[] i)
        {
            Process.Start(tb[i].Text);
        }
Ситуация такова.
1) При создании кнопки пытаюсь прописать ей, по нажатию вызов функции open_id(i). Вот этот отрезок кода:
C#
1
bt[i].Click += open_id(i);
Но выводит ошибку: Не удается неявно преобразовать тип "void" в "System.EventHandler".
2) В функции, пытаюсь обратиться к ранее созданному текстовому полю. Но т.к. его ещё не существует, то выводит ошибку: Имя "tb" не существует в текущем контексте.
Как решить данные проблемы, подскажите пожалуйста. Так же буду очень благодарен на ссылки на ресурсы в которых данные задачи рассматриваются более подробно, что бы изучить данную тему! Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.01.2019, 10:57
Ответы с готовыми решениями:

Назначить событие для динамически созданного элемента
В цилке у меня создаются несколько label. Мне нужно, чтобы при щелчке на них, вызывался...

Не работает событие click у кнопки пользовательского элемента управления
Сделал Я себе кнопку из пользовательского элемента управления, но когда я добавляю её на форму и...

Событие Click элемента ToolStripButton на неактивной форме
Здравствуйте! Если форма неактивна и щелкам мышью по ToolStripButton событие Click срабатывает...

Как делегировано обрабатывать событие click родителя элемента ?
Как событие повесить на родителя ? Образец идеи $('#div_orders').on('click',...

2
Эксперт .NET
10624 / 6553 / 1512
Регистрация: 25.05.2015
Сообщений: 19,829
Записей в блоге: 14
01.01.2019, 11:15 2
Лучший ответ Сообщение было отмечено JakeWork как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private Button[] bt = new Button[10];
private TextBox[] tb = new TextBox[10];
...
private void button2_Click(object sender, EventArgs e)
{
  ...
  this.bt[i].Click += this.open_id;
  this.bt[i].Tag = i;
  ...
}
...
private void open_id(object sender, EventArgs e)
{
  var btn = sender as Button;
  int i = Convert.Toint32(btn.Tag);
  Process.Start(this.tb[i].Text);
}
Добавлено через 3 минуты
Цитата Сообщение от JakeWork Посмотреть сообщение
ссылки на ресурсы
Литература по C# для начинающих и не только
1
3 / 3 / 1
Регистрация: 22.07.2016
Сообщений: 57
01.01.2019, 11:23  [ТС] 3
Rius, спасибо большое за столь быстрый и оперативный ответ!
Всё заработало. Основную суть и причины почему заработало - понял. Спасибо вам большое! Буду изучать^^ Чудесного вам дня, хорошего настроения и приятного кодинга)))
0
01.01.2019, 11:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.01.2019, 11:23
Помогаю со студенческими работами здесь

Как обработать событие click и событие нажития стрелки?
Допустим есть кнопка влево-вправо для горизонтального листания товаров. Как нужно кроссбраузерно...

Событие click()
Дело такое, есть блок див1 на котором навешено событие клик, а в этом блоке есть еще один блок...

Событие click
Есть одна проблемма, есть код $('#stat_edit').click(function(){ var or_text =...

Событие click
Здравствуйте, начал не так давно работать с ajax, вчера делал добавление в базу без перезагрузки ....

Событие click
В общем в JS я вообще новичок, потому прошу помощи. Существует вот такой скрипт: &lt;script...

Не работает событие click()
Здравствуйте. Написал скрипт с использованием AJAX. Суть скрипта заключается в том, чтобы выводить...


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

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