2015-07-21 2 views
4

C# winforms здесь. Мне нужно нарисовать невидимую область прямоугольника над панелью и поймать его ввод мыши/оставить события.Прямоугольная область над панелью, чтобы поймать входы мыши

Моя ситуация (как для некоторых других предложений, вы можете иметь):

У меня есть медиа-плеер (панель), на мыши войти событие я сделать видимое немного меню навигации (он находится над панелью). Я хочу скрыть навигационное меню с выводом мыши из панели. Это работает, но, к сожалению, вход в навигационное меню делает его невидимым. Большое спасибо.

ответ

2

Наведите указатель мыши на мышь, чтобы увидеть, соответствует ли текущий Cursor.Position вашим прямоугольником. Например, с использованием панели и метки:

public Form1() 
    { 
     InitializeComponent(); 
     panel1.MouseEnter += panel1_MouseEnter; 
     panel1.MouseLeave += common_MouseLeave; 
     label1.MouseLeave += common_MouseLeave; 
    } 

    private void panel1_MouseEnter(object sender, EventArgs e) 
    { 
     label1.Visible = true; 
    } 

    private void common_MouseLeave(object sender, EventArgs e) 
    { 
     Rectangle rc = panel1.RectangleToScreen(panel1.ClientRectangle); 
     if (!rc.Contains(Cursor.Position)) 
     { 
      label1.Visible = false; 
     } 
    } 
+0

Абсолютно совершенный. Отлично работает! Спасибо огромное! –