Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 隐藏ToolStripMenuItem';自动工具提示_C#_Winforms_Contextmenu_Toolstripmenu - Fatal编程技术网

C# 隐藏ToolStripMenuItem';自动工具提示

C# 隐藏ToolStripMenuItem';自动工具提示,c#,winforms,contextmenu,toolstripmenu,C#,Winforms,Contextmenu,Toolstripmenu,我有一个上下文菜单和另一个下拉上下文菜单,在第二个上下文菜单上,每个项目都有一个工具提示(用toolStripMenuItem.ToolTipText设置): 单击某个项目时,我会启动一些计算密集型操作,但就在调用第一个关联菜单上的Hide()之前: ctxMainMenu.Hide() // computing-intensive statements 这两个菜单将正确消失,但工具提示将保持在顶部,直到后续操作结束 我已经尝试了Application.DoEvents(),将单击项的工具提

我有一个上下文菜单和另一个下拉上下文菜单,在第二个上下文菜单上,每个项目都有一个工具提示(用
toolStripMenuItem.ToolTipText
设置):

单击某个项目时,我会启动一些计算密集型操作,但就在调用第一个关联菜单上的
Hide()
之前:

ctxMainMenu.Hide()
// computing-intensive statements
这两个菜单将正确消失,但工具提示将保持在顶部,直到后续操作结束

我已经尝试了
Application.DoEvents()
,将单击项的工具提示文本设置为
null

有时,如果在完全绘制之前单击,只会出现阴影或褪色的工具提示。

我的猜测是,由于没有鼠标移动事件,由于您隐藏了菜单,因此工具提示会在消失之前等待超时,但随后会被延迟,因为您正在锁定GUI。在执行密集任务之前,您是否尝试过使用工具提示的
Hide
方法?解决此问题的正确方法是在单独的线程中执行计算智能语句,而不是锁定GUI线程,这是ofc,如果可能的话。@TeaWithCookies我无法访问工具提示,因为它是自动工具提示:
toolStripMenuItem
没有
tooltip
属性,只有
tooltip
AutoToolTip
。死锁GUI线程永远不会产生理想的结果。在停止执行昂贵的代码之前,一切都是固定不变的。您需要将其移动到工作线程,使用Task或BackgroundWorker类。