Получение типа контроля при наведении мыши - PullRequest
1 голос
/ 18 февраля 2010

Я хотел получить тип элемента управления при наведении мыши.Пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 18 февраля 2010

Вы можете получить тип элемента UIE, по которому в данный момент движется мышь, используя событие MouseMove. Поскольку это пузырьковое событие, вы можете прикрепить обработчик к контейнеру, например Canvas.

Элемент UIE, над которым в данный момент движется мышь, можно получить из свойства MouseEventArgs OriginalSource.

Следовательно, чтобы определить тип, по которому движется мышь, вы можете использовать код, подобный следующему: -

void Canvas_MouseMove(object sender, MouseEventArgs e)
{

    Type currentType = e.OriginalSource.GetType();
    // Make decisions based on value of currentType here
}

Как бы вы ни были осторожны, MouseMove часто срабатывает, когда пользователь перемещает мышь, поэтому вы можете отложить любую тяжелую работу до некоторого периода времени после последнего перемещения мыши.

К сожалению, нет события всплывающей мыши над событием.

Другой альтернативой является присоединение одного и того же обработчика MouseEnter к каждому дочернему элементу UIE, который вы добавляете в Canvas. В этом случае вы можете использовать sender вместо e.OriginalSource. Вы должны быть осторожны, чтобы удалить обработчик, если элемент удаляется из Canvas, иначе вы можете создать то, что может показаться утечкой памяти.

0 голосов
/ 18 февраля 2010

Добавить mouse_enter событие в элемент управления.

Вы можете получить тип со строкой кода следующим образом

var x = sender.GetType();

Затем вы можете сравнить его, используя что-то вроде:

if (x.Equals(typeof(TreeView)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...