当前位置: 首页 > 知识库问答 >
问题:

防止光标在WPF代码中更改的消息框

宰父衡
2023-03-14

在我的wpf项目中,我使用以下代码更改鼠标光标:

我调度员。调用(New SetCursorCallback(SetCursor的地址),New Object(){Cursors.Wait})

定义如下:

委托子SetCursorCallback(ByVal[CursorType]作为系统。Windows。输入。光标)

Private Sub SetCursor(ByVal [CursorType] As System.Windows.Input.Cursor)

    Me.Cursor = [CursorType]

End Sub

在一个处理按键的子程序中,我检查按下的键是否为删除键,如果为真,我使用消息框提示用户确认他们想要删除所选条目。

删除选定的条目可以正常工作,但可能需要一些时间。

因此,我称之为

我调度员。调用(New SetCursorCallback(SetCursor的地址),New Object(){Cursors.Wait})

在长时间运行的删除代码开始之前将光标更改为等待图标的代码,以及值为光标的相同代码。长时间运行的代码完成时的箭头。

但是光标不会改变。

我在SetCull例程中放了一个console.writeline来确认它正在被执行,并且它是(当调用游标以将其更改为等待时和再次将其更改为箭头时)。

如果我从等式中删除消息框提示,光标会按预期发生变化。光标会发生变化。我不明白为什么消息框会阻止光标更改。

这是带有消息框的代码

如果是MessageBox。显示(“是否要删除所选条目?”,“我的程序名-删除”,MessageBox按钮。是的,MessageBoxImage。问题:结果如何。那好吧

            Me.Dispatcher.Invoke(New SetCursorCallback(AddressOf SetCursor), New Object() {Cursors.Wait})

           ... some code ...  

        End If

我还尝试了在消息框的if语句内设置一个标志,并将光标从消息框的if语句外侧更改。它不起作用,在子计数器中运行messagebox似乎停止了对光标的更改。

我还尝试了一个自我。msgbox if语句中的focus命令,但无效。

我也尝试过改变自我。游标语句到xxx。光标,其中xxx在窗口加载时全局设置为“我”。

我还尝试使用winform msgbox语句。

唯一似乎允许光标更改代码工作的是不使用消息框进行提示。

我使用的是VS 2015社区版。

在这一点上我的想法,任何帮助将不胜感激。

共有1个答案

易炳
2023-03-14

好吧——所以这并不漂亮,但为了解决这个问题,当用户单击messagebox的“Ok”按钮时,我最终将鼠标指针从屏幕上的任何位置跳到了wpf的windows列表框的中心。

现在将鼠标指针放在wpf窗口列表框上,然后将图标更改为等待符号并运行长时间运行的代码

这是有效的——按预期显示等待图标——唯一的问题是,用户必须在视觉上搜索鼠标指针移动到了哪里(这是两个缺点中较小的一个,更大的缺点是在调用等待鼠标指针时,鼠标图标不变)。

下面是我用来跳转鼠标光标的代码:

Dim MyCursor=新表单。游标(Forms.Cursor.Current.Handle)

我的光标。位置=新系统。绘图。点(我。左MyListView。边距。左MyListView。ActualWidth/2,我。顶部MyListView。边距。顶部MyListView。实际高度/2)

 类似资料:
  • 本文向大家介绍WPF自动隐藏的消息框的实例代码,包括了WPF自动隐藏的消息框的实例代码的使用技巧和注意事项,需要的朋友参考一下 (鼠标放上去将一直显示,移开动画继续),提供normal和error两种边框。 介绍:传统的确定,取消,OK,CANCAL之类的对话框太繁琐了,由于项目需要而诞生的仿手机式提示对话框。当然传统的对话框项目中也有,这里就不做介绍了。 出场和退场动画做得很简单,就用Blend

  • 对于我的基于TCP的网络应用程序,我使用基于长度的消息帧传输数据。很简单,一个数据包看起来是这样的: Length是一个Int32,告诉我即将到来的原始数据的长度。 用这个来防止磨炼,有什么好办法呢?我可以实现一个大小限制(例如,每个数据包1MB,任何高于这个值的东西都将丢弃客户机并阻止它),但是有没有更多的“标准”解决方案,不会让人觉得那么讨厌呢?

  • 问题内容: 我在JList中有一个单词列表。每次将鼠标光标指向一个单词时,我都希望光标变为手形光标。现在我的问题是该怎么做? 有人可以帮我解决这个问题吗? 问题答案: 在JList上使用MouseMotionListener来检测鼠标何时输入,然后调用将其转换为。 样例代码:

  • 我试图定制Androidcursor。我在谷歌和StackOverflow上找到了许多使用android:textCursorDrawable=“的解决方案。但它可以从API 12获得。 我想从API 8中实现这一点。那么,是否可以在中更改光标颜色

  • 问题内容: 我正在按照以下内容进行编写,其中在比较两个Unicode文本的多行块时,我试图产生一个不错的错误消息。进行比较的内部方法会引发一个断言,但是默认的解释对我没有用 我需要在代码中添加如下内容: 我无法弄清楚如何在我捕获的assertionerror中更改打印的错误消息。我总是得到,它仅显示输出的第一行。 如何更改断言消息以打印出我想要的任何内容? 如果相关的话,我正在运行测试。 问题答案

  • 可以在没有预定义的光标样式的情况下获得当前的光标类型,就像鼠标通过文本、链接… 大概是这样的: 我想在控制台中记录光标的状态,如:指针、文本、移动、等待... 我在jQuery中找到了某种解决方案,但我想在纯香草JS中找到一个 谢谢你的回答