Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как получить имя контрола по координатам мыши

40K
17 июля 2009 года
MixerLosev
26 / / 13.07.2009
Имеется форма. На ней есть несколько контролов.
Нужно по наведению мыши на контрол получать его имя.
Попробовал использовать такую конструкцию:
------------------------------------------------------------------
private void Form1MouseMove(object sender, MouseEventArgs e)
{

Control c = new Control();
c = this.GetChildAtPoint(new Point(e.X, e.Y));
}
-------------------------------------------------------------------
Не работает. Объект c - всегла null.

Кто-нибудь знает в чем проблема?
288
17 июля 2009 года
nikitozz
1.2K / / 09.03.2007
Просто потому, что когда вы водите мышью над контролом сообщения мыши будет получать он, а не форма.

P.S. А зачем писать это?
 
Код:
Control c = new Control();
40K
17 июля 2009 года
MixerLosev
26 / / 13.07.2009
Ага понятно.
Как получить имя контрола зная координаты курсора мыши?
29K
17 июля 2009 года
Ander Skirnir
109 / / 08.06.2009
Предлагаю в конструкторе формы подписать OnHover'ы всех дочерних контролов на функцию, записывающую текущий контрол в некую переменную:

[HIGHLIGHT=C#] public partial class Form1 : Form
{
private Control curctrl;

public Form1()
{
InitializeComponent();
ListenControls();
}

private void ListenControls()
{
// лямбда-функция, записывающая в curctrl текущий контрол
Action<object, EventArgs> hoverfunc =
(s,e) => curctrl = (Control)s;

// подписываем событие формы OnHover на hoverfunc
this.MouseHover += new System.EventHandler(hoverfunc);

// подписываем событие OnHover всех дочерних контролов формы на hoverfunc
foreach (Control ctrl in this.Controls)
ctrl.MouseHover += new System.EventHandler(hoverfunc);
}
}[/HIGHLIGHT]

Таким образом, в переменной curctrl и будет хранится нужный вам контрол.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог