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

Передача события элемента управления

04.02.2021, 17:00. Показов 717. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть класс с массивом кнопок 0,1,2,3 и тд. Есть несколько других классов имеющих функцию Fun(int num). Как создавая объект первого и одного из второго класса определить, чтобы по нажатию кнопки 1 выполнялась функция Fun(1) этого класса. И т.д.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.02.2021, 17:00
Ответы с готовыми решениями:

Привязать обработчик события для программно добавленного элемента управления
Такая проблема. Программно создаю DataGridView при добавлении новой вкладки на tabControl. Существует функция обработки события получения...

В чем отличия пользовательского элемента управления от настраиваемого элемента управления?
В чем отличия пользовательского элемента управления от настраиваемого элемента управления в контексте Windows Forms?

Обработка события при выходе за элемент управления
Суть в том, что есть кнопка и какая то анимация при событии MouseDown, которая возвращается в дефолт при событии MouseUp. Все вроде бы...

6
0 / 0 / 0
Регистрация: 04.02.2021
Сообщений: 4
06.02.2021, 10:49  [ТС]
В классе элементов управления объявил делегата принимающего необходимые аргументы (здесь индекс кнопки). В обработке события кнопки вызываю экземпляр этого делегата. Пришлось дополнительно создавать класс унаследованный от класса кнопки, чтобы ввести поле "Индекс", т.е. модифицировать кнопку, поскольку как реализовать это через EventArgs или его наследников не уразумел. Собственно здесь создается именно массив "модифицированных" кнопок.
В главном классе приложения создал метод с теми же параметрами, что и делегат. При объявлении экземпляра класса объектов управления привязал делегата к нему. А в этом методе уже вызываю функцию Fun(Index) второго объекта. Работает. Не знаю правильно ли это или нет. Логичнее вроде передавать дополнительные параметры события через наследника EventArgs, но компилятор со мной не согласен.
0
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
06.02.2021, 11:00
Цитата Сообщение от Pabuh Посмотреть сообщение
здесь индекс кнопки
А свойство Tag кнопки использовать в качестве индекса?

Добавлено через 2 минуты
А лучше код посмотреть бы...
0
0 / 0 / 0
Регистрация: 04.02.2021
Сообщений: 4
06.02.2021, 11:01  [ТС]
Tag определяет только одно свойство. Мне надо было, как минимум, два. Я несколько упростил задачу при описании.
0
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
06.02.2021, 11:13
Цитата Сообщение от Pabuh Посмотреть сообщение
Tag определяет только одно свойство
Tag - это ссылка на объект.
Можно создать свой объект со свойствами, какие нужно и сколько нужно.

Добавлено через 9 минут
Вот примерчик:
C#
1
2
3
4
5
6
7
8
9
        /// <summary>
        /// Нажата кнопка 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Click(object sender, EventArgs e)
        {
            buttonClick?.Invoke(this, new EventArgs());
        }
buttonClick - это событие
через this передаётся ссылка на класс, в котором и была нажата кнопка.
0
0 / 0 / 0
Регистрация: 04.02.2021
Сообщений: 4
06.02.2021, 11:20  [ТС]
Если так, про Tag, то я проделал лишнюю работу. Переделаю для унификации. Я с c# только начинаю. В "предыдущем" языке Tag было поле с типом int. Поэтому я туда и не смотрел сразу. А про this - это само собой, без этого бы и не получилось.
0
 Аватар для ashsvis
923 / 503 / 202
Регистрация: 08.10.2018
Сообщений: 1,553
Записей в блоге: 11
06.02.2021, 11:32
Цитата Сообщение от Pabuh Посмотреть сообщение
В "предыдущем" языке
Delphi?

Добавлено через 8 минут
Вот примерчик просто события и события с перегруженным EventArgs:
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
    public partial class ChatUserControl : UserControl
    {
        private event EventHandler cryptSendClick;
 
        public event EventHandler CryptSendClick
        {
            add { cryptSendClick += value; }
            remove { cryptSendClick -= value; }
        }
 
        private event ChatEncodingEventHandler chatEncoding;
 
        public event ChatEncodingEventHandler ChatEncoding
        {
            add { chatEncoding += value; }
            remove { chatEncoding -= value; }
        }
 
    }
 
    public delegate void ChatEncodingEventHandler(object sender, ChatEncodingEventArgs e);
 
    public class ChatEncodingEventArgs : EventArgs
    {
        public ChatEncodingEventArgs() { }
        public ChatEncodingEventArgs(string encodedValue) { }
 
        public string EncodedValue { get; set; }
        public string DecodedValue { get; set; }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2021, 11:32
Помогаю со студенческими работами здесь

Как использовать события элементов управления из UserControl
Создал проект &quot;Библиотека элементов управления Windows Forms&quot; Добавил Textbox, button. От компилировал все работает. Добавил данный...

Можно ли наследовать события для элементов управления?
Здравствуйте, извиняюсь за скорей всего столь глупый вопрос, но можно ли наследовать события для элементов управления? Допустим, я хочу,...

Одинаковый код для одного события у разных элементов управления
У каждого элемента управления есть события. Например MouseMove. Мне необходимо на каждый элемент управления прописать одинаковую строку...

Передача переменной из обработчика события
Доброго времени суток! Есть метод, который при возникновения события comboBox1.SelectedIndexChanged записывает выделенный элемент...

Передача управления с формы
Есть главная форма на которой находится panel1. Из этой главной формы запускается вторая форма, в которой по нажатию ОК должны выполняться...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru