我希望在Visual Studio 2012的C#中我的应用程序的特定时间(如2秒)之后将鼠标光标隐藏在特定位置(如按钮)。我该怎么做?请帮帮我。
答案 0 :(得分:1)
使用不同的线程使用MouseEnter
和MouseLeave
事件等待几秒钟,然后使用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更改为默认值。