Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
1

Управление событиями одного контрола через события другого контрола

07.10.2014, 15:54. Показов 1239. Ответов 10
Метки нет (Все метки)

Уважаемые форумчане помогите решить проблему. Есть два компонента на форме: checkBox и dataGridView, у dataGridView есть событие по щелчку мышью на заголовке строки. Возможно ли вызвать это событие , из события щелчка по checkBox, если можно с примером
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2014, 15:54
Ответы с готовыми решениями:

Подписать контрол на все события другого контрола того же типа
Возможно ли это сделать в коде? Button button1 = new Button(); button1.Click += button_Click;...

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

Ожидание нажатия события контрола
ситуация такая : есть метод в котором имеется некий цикл, мне нужно что бы в этом цикле, в...

Обработчик события динамически созданного контрола
Есть событие контрола panel_MouseMove, panel динамически создан и поэтому при создании он ссылается...

10
38 / 38 / 12
Регистрация: 28.03.2013
Сообщений: 272
Записей в блоге: 2
07.10.2014, 15:57 2
DmitryBond, checkedchanged и пример
0
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
07.10.2014, 16:11  [ТС] 3
Спасибо мне известно какое событие отвечает за изменение свойства cheked в checkbox, как из этого события вызвать событие принадлежащие другому контролу dataGridView, я щелкаю по checkbox, а событие происходит dataGridView, которое происходит при щелчке на заголовок строки
0
38 / 38 / 12
Регистрация: 28.03.2013
Сообщений: 272
Записей в блоге: 2
07.10.2014, 16:16 4
DmitryBond, опубликуйте код, если несложно

Добавлено через 3 минуты
Цитата Сообщение от DmitryBond Посмотреть сообщение
я щелкаю по checkbox, а событие происходит dataGridView, которое происходит при щелчке на заголовок строки
C#
1
2
3
4
if(CheckBox1.Checked)
{
// Вызов кода который у вас прописан в событии при нажатии на заголовок
}
1
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
07.10.2014, 16:19 5
Тебе нужно вызвать обработчик события datagridview из события checkBox-са?
0
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
07.10.2014, 16:58  [ТС] 6
Вы все правильно пишите, такой способ имеет место быть, но не хочу дублировать код в двух событиях, на крайней случай я поступлю именно так - вставлю код из события datagridView в событие изменения свойства Checked
код
C#
1
2
3
4
5
6
7
8
9
10
//событие щелчок на заголовок строки
private void dataGridPacketIn_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
   // рабочий код
}
// в этом событии принадлежащем checkBox  я хочу вызвать событие принадлежащее dataGridPacketIn
private void checkBox_time_label_CheckedChanged(object sender, EventArgs e)
{
 
}// возможно ли это?
Добавлено через 35 секунд
Можно подробней , желательно с примером
0
79 / 79 / 37
Регистрация: 11.09.2014
Сообщений: 579
07.10.2014, 17:28 7
просто вызвать событие не получится так как в одно Event DataGridViewCellMouseEventArgs а в другом EventArgs.
Проще создать метод с кодом из dataGridPacketIn_RowHeaderMouseClick и добавить его в оба обработчика события.
0
38 / 38 / 12
Регистрация: 28.03.2013
Сообщений: 272
Записей в блоге: 2
08.10.2014, 08:47 8
DmitryBond, предлагаю сделать функцию, например:
C#
1
2
3
4
void FunctionPrimer()
{
// Рабочий код
}
и вызывать эту функцию в событиях:
C#
1
2
3
4
5
6
7
8
9
private void dataGridPacketIn_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
      FunctionPrimer();
}
// в этом событии принадлежащем checkBox  я хочу вызвать событие принадлежащее dataGridPacketIn
private void checkBox_time_label_CheckedChanged(object sender, EventArgs e)
{
       FunctionPrimer();
}
1
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
08.10.2014, 10:43  [ТС] 9
Это , конечно, решает частично проблему, но в каждом из этих событий я обрабатываю не один chekBox, а три и три dataGridView в зависимости от того, кто является sender, вообщем в любом случае придется переписать функцию FunctionPrimer(); проблема в том что требования к программе постоянно меняются, первый раз работаю с устройством, программа проверочная, постоянно приходится добавлять всякие функции, не хочется каждый раз переписывать функции и события, искал способ вызвать одно событие из другого, где -то попадалась информация, что это удобно реализовывать через делегаты, но с ними еще только разбираюсь
0
38 / 38 / 12
Регистрация: 28.03.2013
Сообщений: 272
Записей в блоге: 2
08.10.2014, 11:29 10
DmitryBond, ну так передавай в функцию sender. Через условный оператор отслеживай какой у тебя из трех checkbox и какой из трех dataGridView.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void FunctionPrimer(object sender)
        {
            if(sender is CheckBox)
            {
                switch (((CheckBox)sender).Name)
                {
                    case "checkBox1":
                        MessageBox.Show("Нажали на первый чекбокс!","Пример");
                        break;
                    case "checkBox2":
                        MessageBox.Show("Нажали на второй чекбокс!", "Пример");
                        break;
                }
            }
            else if (sender is DataGridView)
            {
                // аналогично
            }
        }
1
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
08.10.2014, 13:39  [ТС] 11
Вообщем, ты не понял!!!
Как одну функцию написать, для двух разных событий я разобрался. Просто искал другое решение. Думал, что есть способ вызывать из одного события другое событие. Спасибо за попытку помочь. Надеюсь у кого-нибудь найдется решение
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2014, 13:39

Обработчик события контрола
Как перехватыватить событие которое происхордит в контроле, как написать обработчик для него в...

Обновление контрола формы из другого потока
Visual Studio Ultimate 2013(первая версия) позволяет обновить элемент управления формы из...

Поиск динамического контрола на динамической форме, созданной из динамического контрола с последующим
Поиск динамического контрола2 на динамической форме, созданной из динамического контрола1 с...

Можно ли в обработчике события контрола получить его имя?
Например, есть у нас обработчик TextChanged текстбокса tb. Задача получить значение "tb" для строки...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru