2015-07-21 80 views
4

c#winforms here。我需要在面板上繪製一個不可見的矩形區域並捕捉鼠標進入/離開事件。面板上的矩形區域捕捉鼠標輸入

我的情況(因爲你可能有一些其他的建議):

我有一個媒體播放器(面板),對鼠標輸入事件中,我使人們看到一個小的導航菜單(它位於在面板)。我想隱藏鼠標離開面板的導航菜單。這工作,但不幸的是,進入導航菜單使其不可見。非常感謝。

回答

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

絕對完美。它像一個魅力!非常感謝! –