2009-07-13 53 views
1

我有一個小的形式,看起來像這樣在vb.net顯示/隱藏窗體時,光標在左上角

http://img11.imageshack.us/img11/5651/samplennk.jpg

你知道如何設置Windows任務欄上出現和消失當鼠標的位置完全位於底部時?當鼠標在屏幕的左上角時,我想用我的表單做同樣的事情。

或者你可以向我建議一種不同的方式來做到這一點。用戶在使用過程中可能只需要設置這些軌道杆幾次。

回答

2

你可能只是有一個線程,檢查Cursor.Position,當它是0,0表單出現。

這有點粗糙,但將初始窗體狀態設置爲最小化。

public partial class Form1 : Form 
{ 
    private delegate void ShowFormDel(); 
    private readonly ShowFormDel _ShowFormDel; 
    private bool _CheckForMouse; 

    public Form1() 
    { 
     InitializeComponent(); 
     _CheckForMouse = true; 
     _ShowFormDel = ShowForm; 
     Thread x = new Thread(CheckMouseThread); 
     x.Start(); 
    } 

    public void CheckMouseThread() 
    { 
     while (_CheckForMouse) 
     { 
      if (Cursor.Position.X < 5 && Cursor.Position.Y < 5) 
      { 
       this.Invoke(_ShowFormDel); 
      } 
      Thread.Sleep(1000); 
     } 
    } 

    private void ShowForm() 
    { 
     this.Location = new Point(0, 0); 
     this.WindowState = FormWindowState.Normal; 
     this.Activate(); 
     this.Visible = true; 
    } 

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     _CheckForMouse = false; 
    } 

    private void Form1_MouseLeave(object sender, System.EventArgs e) 
    { 
     this.WindowState = FormWindowState.Minimized; 
    } 
} 
+0

嘿非常好,但你可以把它放在vb.net嗎? – 2009-07-16 18:26:24