如何在没有活动(或任何)Windows窗体的情况下使用C#显示等待光标?

如何在没有活动(或任何)Windows窗体的情况下使用C#显示等待光标?,c#,winforms,.net-4.0,cursor,hourglass,C#,Winforms,.net 4.0,Cursor,Hourglass,我已尝试使用此代码示例: private void DoShortRunningTask() { using (new StWaitCursor()) { Thread.Sleep(5000); // 5 sec delay. .. do some work .. } } 发件人: 但是它对我没有任何作用,因为我没有一个主要的形式。我不需要主窗体。我的C#项目类型是Windows应用程序,但它显示的唯一GUI是错误或成功消息对话框。

我已尝试使用此代码示例:

private void DoShortRunningTask()
{
    using (new StWaitCursor())
    {
        Thread.Sleep(5000); // 5 sec delay. 
        .. do some work .. 
    } 
}
发件人:

但是它对我没有任何作用,因为我没有一个主要的形式。我不需要主窗体。我的C#项目类型是Windows应用程序,但它显示的唯一GUI是错误或成功消息对话框。我有没有办法伪造WinForm的存在(使它存在但不可见)?鼠标光标必须在它上面才能显示吗

我不需要主窗体

是的,你知道。抱歉,任何UI交互都需要表单

我假装WinForm存在的方式(使它存在但不可见)

那怎么是假的

创建一个表单,使其不可见(transaprent-检查表单类上的所有属性,您就会找到它)并完成;)标准方法。同时告诉它不要出现在屏幕底部的表单集合中,并最小化它,这样就完成了。这里没有假的

我不需要主窗体

是的,你知道。抱歉,任何UI交互都需要表单

我假装WinForm存在的方式(使它存在但不可见)

那怎么是假的

创建一个表单,使其不可见(transaprent-检查表单类上的所有属性,您就会找到它)并完成;)标准方法。同时告诉它不要出现在屏幕底部的表单集合中,并最小化它,这样就完成了。这里没有假的。

汤姆++

您只是想更改当前光标吗

试试这个

汤姆++

您只是想更改当前光标吗

试试这个


我认为当光标不在UI中时,仅仅更改光标是不好的做法。你不会希望另一个程序在你的用户界面上弄乱光标。如果您只是想显示您的应用程序正在运行,您是否想过使用托盘应用程序。这些都是相对简单的创建

下面是我刚在谷歌上搜索到的一个例子:


如果您想让用户知道正在发生的事情,您还可以在跑步过程中显示语音气泡消息等。

我不认为在光标不在您的UI中时更改光标是一种很好的做法。你不会希望另一个程序在你的用户界面上弄乱光标。如果您只是想显示您的应用程序正在运行,您是否想过使用托盘应用程序。这些都是相对简单的创建

下面是我刚在谷歌上搜索到的一个例子:


如果您想让用户知道正在发生的事情,您还可以在跑步过程中显示语音气泡消息等。

因此,您不希望用户反馈以显示处理状态的形式出现,您只希望用户反馈以光标的形式出现,不显示处理状态。你应该回顾一下Windows用户界面指南,imho。它没有意义。如果没有UI,那么用户就不会等待任何东西。如果她确实是,一些外部可见的副作用,例如打印输出,那么一定要显示ui。通常是ProgressBar。还可以防止错误消息框消失在另一个窗口后面。因此,您不希望用户反馈作为显示处理状态的表单,您只希望用户反馈作为光标附加到不显示处理状态的任何内容上。你应该回顾一下Windows用户界面指南,imho。它没有意义。如果没有UI,那么用户就不会等待任何东西。如果她确实是,一些外部可见的副作用,例如打印输出,那么一定要显示ui。通常是ProgressBar。还可以防止错误消息框消失在另一个窗口后面。我知道我可以做到这一点,只要我有一个表单。不管怎样,谢谢。我知道我能做到,只要我有表格。无论如何,谢谢你。