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

Можно ли наследовать события для элементов управления?

28.01.2015, 21:53. Показов 1863. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, извиняюсь за скорей всего столь глупый вопрос, но можно ли наследовать события для элементов управления? Допустим, я хочу, чтобы у меня при наведении на надпись цвет лейбла менялся, но мне придется расписывать для каждого лейбла однотипные события.
Код:
C#
1
2
3
4
5
6
7
8
9
private void label1_MouseEnter(object sender, EventArgs e)
        {
            label1.ForeColor = Color.CornflowerBlue;
        }
 
        private void label1_MouseLeave(object sender, EventArgs e)
        {
            label1.ForeColor = Color.Black;
        }

Можно ли это сделать проще? Классом отдельным записать на лейбл или циклом как то пробежаться? Сразу извините, я на стадии изучения)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2015, 21:53
Ответы с готовыми решениями:

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

Как наследовать события
Здравствуйте! Создаю класс-наследник TImage. Не получается описать событие OnClick в конструкторе...

Возможно ли наследовать события
на форме две кнопки.при нажатии открываются формы для кнопок 1 и 2.Событие открытия ведь...

Создание элементов управления в обработчике события
Доброго времени суток. У меня возник вопрос следующего характера: можно как-то создавать элементы...

5
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
28.01.2015, 23:33 2
Лучший ответ Сообщение было отмечено Ruslan1 как решение

Решение

Для создания своих элементов отдельный класс всегда лучше)))
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
 
namespace WindowsFormsApplication3
{
    class Class1 : Label
    {
        protected override void OnMouseEnter(EventArgs e)
        {
            base.OnMouseEnter(e);
            this.ForeColor = Color.Green;
        }
        protected override void OnMouseLeave(EventArgs e)
        {
            base.OnMouseLeave(e);
            this.ForeColor = Color.Black;
        }
    }
}
1
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
29.01.2015, 01:11 3
Цитата Сообщение от Ruslan1 Посмотреть сообщение
или циклом как то пробежаться
так и нужно, по необходимых элементам пройтись в цикле и навесить нужный обработчик
только с наследованием это никак не связано.
пример на все лейблы формы вешаем один обработчик события

зы проверь на опечатки, набирал с коленки
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public Form1()
{
   inintialization();
   foreach(var l in Controls.OfType<Label>())
   {
      l.MouseEnter += label_MouseEnter;
      l.MouseLeave += label_MouseLeave;
   }
}
 
private void label_MouseEnter(object sender, EventArgs e)
{
    ((Label)sender).ForeColor = Color.CornflowerBlue;
}
 
private void label_MouseLeave(object sender, EventArgs e)
{
    ((Label)sender).ForeColor = Color.Black;
}
1
3 / 3 / 1
Регистрация: 26.11.2013
Сообщений: 30
29.01.2015, 09:14  [ТС] 4
Для создания своих элементов отдельный класс всегда лучше)))
Код 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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
 
namespace WindowsFormsApplication3
{
    class Class1 : Label
    {
        protected override void OnMouseEnter(EventArgs e)
        {
            base.OnMouseEnter(e);
            this.ForeColor = Color.Green;
        }
        protected override void OnMouseLeave(EventArgs e)
        {
            base.OnMouseLeave(e);
            this.ForeColor = Color.Black;
        }
    }
}
Если не трудно расскажите дальше как такое реализовать?)
В дизайнере нужно прописывать наследование от нового класса?)
Спасибо

так и нужно, по необходимых элементам пройтись в цикле и навесить нужный обработчик
только с наследованием это никак не связано.
пример на все лейблы формы вешаем один обработчик события

зы проверь на опечатки, набирал с коленки
Ваш вариант отлично работает, только цифру 1 после лейбла поставил внутри цикла) Спасибо
0
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
10.04.2015, 19:21 5
Цитата Сообщение от Ruslan1 Посмотреть сообщение
Если не трудно расскажите дальше как такое реализовать?)
В дизайнере нужно прописывать наследование от нового класса?)
Нет, новый элемент в панели сам появится =)
0
4 / 4 / 2
Регистрация: 14.02.2015
Сообщений: 122
12.04.2015, 07:47 6
Сколько уже прошло то)
0
12.04.2015, 07:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2015, 07:47
Помогаю со студенческими работами здесь

Зачем наследовать класс данных события от EventArgs
Здравствуйте! Вопрос в шапке. Ответы &quot;так принято&quot; или &quot;так нужно&quot; я уже много где видел, хотелось...

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

Создание общего события нескольких элементов управления
Есть User Control с большим количеством кнопок,как создать общее событие для этих кнопок(например...

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

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

Можно ли каким-то образом наследовать тип bool
Здраствуйте, можно ли каким то образом наследовать тип bool типо что бы 1 - man типо что бы 0 -...


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

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