C#在特定时间后将鼠标光标隐藏在特定位置

时间:2014-06-29 06:04:03

标签: c#

我希望在Visual Studio 2012的C#中我的应用程序的特定时间(如2秒)之后将鼠标光标隐藏在特定位置(如按钮)。我该怎么做?请帮帮我。

2 个答案:

答案 0 :(得分:1)

使用不同的线程使用MouseEnterMouseLeave事件等待几秒钟,然后使用System.Windows.Forms.Cursor.Hide()隐藏光标

这是使用WPF的代码示例,但可以轻松复制到WinForms:

private void Button_MouseEnter(object sender, MouseEventArgs e)
{
    new Thread(HideMouse).Start();
}

private void Button_MouseLeave(object sender, MouseEventArgs e)
{
    stopHiding.Set();
    System.Windows.Forms.Cursor.Show();
}

private AutoResetEvent stopHiding = new AutoResetEvent(false);

private void HideMouse()
{
    if (!stopHiding.WaitOne(2000))
    {
        Dispatcher.BeginInvoke(new Action(() => System.Windows.Forms.Cursor.Hide()));
    }
}

答案 1 :(得分:1)

使用MouseEnter事件,获取传递的时间。例如,当MouseEnter发生时,您可以以2秒的间隔启动计时器,并在MouseLeave事件发生时停止计时器。如果计时器的Tick事件被触发,则意味着你希望2秒过去。

现在你应该使用控件的MouseCursor属性将光标隐藏到No:

label1.MouseCursor = MouseCursor.No;

当MouseLeave发生时,不要忘记将MouseCursor更改为默认值。