当光标位于左上角时显示/隐藏表单

时间:2009-07-13 11:38:17

标签: vb.net winforms

我有一个在vb.net中看起来像这样的小形式

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

你知道当鼠标的位置一直在底部时,如何设置窗口任务栏显示和消失?当鼠标位于屏幕的左上角时,我想用我的表单做同样的事情。

或者你可以向我建议一种不同的方式来做到这一点。用户可能只需要在使用过程中多次设置这些轨道栏。

1 个答案:

答案 0 :(得分: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;
    }
}