c# - 更改鼠标指针未在 c# WinForms 中维护
问题描述
我有一个只有一个按钮的 WinForms 应用程序。我创建了这个应用程序来演示在一个更大的应用程序上发生了什么。
该按钮将布尔值从 true 更改为 false,并设置鼠标指针。
private bool ChangeMouse = true;
private void button1_Click(object sender, EventArgs e)
{
Console.WriteLine("CURSOR-TOP: " + System.Windows.Forms.Cursor.Current.ToString());
if (ChangeMouse)
{
ChangeMouse = false;
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Cross;
}
else
{
ChangeMouse = true;
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
}
Console.WriteLine("CURSOR-BOTTOM: " + System.Windows.Forms.Cursor.Current.ToString());
Console.WriteLine("");
}
这是我点击按钮 4 次时得到的结果:
CURSOR-TOP: [Cursor: Default]
CURSOR-BOTTOM: [Cursor: Cross]
CURSOR-TOP: [Cursor: Default]
CURSOR-BOTTOM: [Cursor: Default]
CURSOR-TOP: [Cursor: Default]
CURSOR-BOTTOM: [Cursor: Cross]
CURSOR-TOP: [Cursor: Default]
CURSOR-BOTTOM: [Cursor: Default]
可以看出,CURSOR-TOP 的值始终是默认光标。为什么不保持对当前光标的更改???
解决方案
必须使用 this.Cursor 而不是 System.Windows.Forms.Cursor.Current。
至于为什么?我真的不知道。
推荐阅读
- java - 如何在java中添加超时和轮询代码?
- python - 错误:“[文件]...”的值无效:路径“{path/to/data}”不存在
- angularjs - 错误:模板解析错误:'super-tab-button' 不是 ionic 3 中的已知元素
- javascript - 我想检查用户是否在 React 应用程序中在线?
- c# - Unity ADS 对象引用未设置为对象错误的实例
- mysql - 无法卸载 mysql-server-8.0
- php - 将使用 PHP 中的条件开发的查询转换为存储过程
- jsp - JSP 上下文根显示空页面
- sapb1 - SAP B1 中的自定义选项卡内容不变
- swift - 设置日期和时间不显示在 textField / Swift