| netlib.narod.ru | < Назад | Оглавление | Далее > |
Вот последние три события мыши:
События Control (выборочно)
| Событие | Метод | Делегат | Аргумент |
| MouseEnter | OnMouseEnter | EventHandler | EventArgs |
| MouseLeave | OnMouseLeave | EventHandler | EventArgs |
| MouseHover | OnMouseHover | EventHandler | EventArgs |
Событие MouseEnter указывает элементу управления (или клиентской области формы) о входе курсора мыши в область над этим элементом управления. Возможно, в ответ на это событие должен измениться вид элемента управления. Событие MouseLeave сообщает элементу управления, что курсор мыши покинул область над этим элементом управления.
Событие MouseHover происходит, когда курсор остановился, войдя в область над элементом управления или в клиентскую область формы. Обычно оно имеет место между событиями MouseEnter и MouseLeave.
Вот программа, визуализирующая эти три события. После вызова OnMouseEnter клиентская область закрашивается зеленым, а после вызова OnMouseLeave восстанавливается ее обычный цвет — цвет фона. В ответ на OnMouseHover клиентская область на 1/10 секунды окрашивается в красный цвет.
EnterLeave.cs
//-------------------------------------------
// EnterLeave.cs (C) 2001 by Charles Petzold
//-------------------------------------------
using System;
using System.Drawing;
using System.Windows.Forms;
class EnterLeave: Form
{
bool bInside = false;
public static void Main()
{
Application.Run(new EnterLeave());
}
public EnterLeave()
{
Text = "Enter/Leave";
}
protected override void OnMouseEnter(EventArgs ea)
{
bInside = true;
Invalidate();
}
protected override void OnMouseLeave(EventArgs ea)
{
bInside = false;
Invalidate();
}
protected override void OnMouseHover(EventArgs ea)
{
Graphics grfx = CreateGraphics();
grfx.Clear(Color.Red);
System.Threading.Thread.Sleep(100);
grfx.Clear(Color.Green);
grfx.Dispose();
}
protected override void OnPaint(PaintEventArgs pea)
{
Graphics grfx = pea.Graphics;
grfx.Clear(bInside ? Color.Green : BackColor);
}
}
| netlib.narod.ru | < Назад | Оглавление | Далее > |