gpt4 book ai didi

c# - WinForm 应用程序中的沙漏问题

转载 作者:可可西里 更新时间:2023-11-01 08:02:31 25 4
gpt4 key购买 nike

在我的程序中,在 WinForm 中有一个 UI。在 ThreadPool 中启动方法之前,我将光标设置为沙漏。

我在 UI 线程中设置光标的代码如下所示:

Application.UseWaitCursor = true;

方法完成后,我返回到 UI 线程以将光标设置为正常大小写。

Application.UseWaitCursor = false;

我的问题是光标停留在沙漏上,直到我不移动鼠标。如果用户等待操作结束而不移动鼠标,这会有点令人不安。

谁能帮帮我?

杰罗姆

最佳答案

实际上,还有另一种方法可以做到这一点,这是我在研究这个问题数小时后在某处找到的。

不幸的是,这是一个 hack。

下面是我编写的一个处理问题的方法。

/// <summary>
/// Call to toggle between the current cursor and the wait cursor
/// </summary>
/// <param name="control">The calling control.</param>
/// <param name="toggleWaitCursorOn">True for wait cursor, false for default.</param>
public static void UseWaitCursor(this Control control, bool toggleWaitCursorOn)
{
...

control.UseWaitCursor = toggleWaitCursorOn;

// Because of a weird quirk in .NET, just setting UseWaitCursor to false does not work
// until the cursor's position changes. The following line of code fakes that and
// effectively forces the cursor to switch back from the wait cursor to default.
if (!toggleWaitCursorOn)
Cursor.Position = Cursor.Position;
}

关于c# - WinForm 应用程序中的沙漏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3130659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com