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 | < Назад | Оглавление | Далее > |