我有一个在vb.net中看起来像这样的小形式
http://img11.imageshack.us/img11/5651/samplennk.jpg
你知道当鼠标的位置一直在底部时,如何设置窗口任务栏显示和消失?当鼠标位于屏幕的左上角时,我想用我的表单做同样的事情。
或者你可以向我建议一种不同的方式来做到这一点。用户可能只需要在使用过程中多次设置这些轨道栏。
答案 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;
}
}