我正在使用.NET 4.0 CP在C#中开发Winforms应用程序。现在它处于beta测试阶段,我正在测试运行Windows的各种系统上的应用程序。 Win 7和8的运行效果很好,但XP真的开始让我感到紧张。C#:Cursor.Hide()无法在XP上工作
显然,只出现在XP上的最新bug是使用Hide()方法不隐藏光标。我试图在画框上绘制自己的光标,如示例所示:
private void pictureBox_MouseEnter(object sender, EventArgs e)
{
Cursor.Hide();
}
private void pictureBox_MouseLeave(object sender, EventArgs e)
{
Cursor.Show();
}
private void pictureBox_Paint(object sender, PaintEventArgs e)
{
//draw some cursor...
}
它的工作方式应该尽可能远,因为它不能在Win XP上运行。
可能是什么问题? .NET 4.0应该可以在XP上工作,但我一直在遇到新的错误。我试着谷歌一些建议,但还没有遇到任何有用的东西。谢谢你的回答。
对此没有简单的解释。显示和隐藏都被计算在内,一个显示调用和隐藏太多将不起作用。哪些可以通过我们看不到的其他代码完成。将一些Trace()语句添加到您的代码中。 – 2013-05-05 21:38:15
@HansPassant我在我的代码中使用隐藏和显示在其他几个地方,但它们从不交错,因此不会有两次或多次隐藏(或显示)连续调用的机会。当光标被隐藏时,它必须在再次隐藏之前显示。 – SysGen 2013-05-06 16:52:29
SO用户通常会遇到麻烦,并在他们的假设无效时发布问题。我怀疑你在其他地方打过Show/Hide,但我们当然看不到他们,也猜不出他们如何以意想不到的方式进行互动。按照我的建议添加跟踪,也可以使用计数器。 – 2013-05-06 16:57:46