表格/窗口后面出现的工具提示! (C#/ VS 2008)

出于一些奇怪的原因,我在VS 2008 C#winforms应用程序中的toopltip显示在表单后面! 这非常令人沮丧,我无法弄清楚我应该做些什么。 以前有人面对这个吗? 想法?

(PS – 我在表单中以编程方式执行toolstip.show)

您可能需要检查以下几项内容:

  1. 确保工具提示知道其父窗口是什么。
  2. 确保工具提示所属的窗口位于前台(不,这不是显示工具提示的要求,它只是帮助调试。)
  3. 尝试将焦点放在工具提示的所有者身上。 如果这样可以解决问题,那么您的工具提示可能存在所有权问题。

尝试将您的页面元素放在前面。 (右键单击元素,将其置于前面)。 这是在您配置的所有工具提示上发生的吗? 不,我以前没见过这个

Windows任务栏后面出现的工具提示存在类似(且已知)的问题。 问题是零星的,我从未见过解决方案。 如果你偶尔也看到这种行为(我建议你在不同的机器上试试这个),那么它可能是相关的。 否则,如果问题在多台机器上是一致的,那么让我们看看你的代码,因为你可能做错了什么。

我有一个类似的问题。 我有一个用户控件编写为C ++ WTL,用于C#.NET2应用程序。 如果控件只在表单上,​​则控件工具提示可以正常工作,但是如果用户控件位于面板上或组中,则工具提示会落后。 我已经尝试更改WTL代码以强制将笔尖推到前面,但是这会导致其他控件中焦点/选择丢失的问题。

此问题几乎总是由窗口为TopMost引起的。 尝试使用SetWindowPos将工具提示设置为HWND_TOPMOST。 我没试过这个……

我已经看到这个问题发生在基于Windows.Forms和Delphi(本机窗口)的应用程序中,这是由于“保持在最顶层”与Windows API的交互引起的。

从本质上讲,将表单标记为TopMost使其保持在某些窗口之上,而不是其他窗口 – 窗口管理具有两个以上不同的级别。

我发现的是:我的应用程序在正常运行时会表现自己,工具提示显示在顶部。 切换到其他应用程序时会出现问题 – 不知何故,窗口的“TopMost”将变成“非常超最顶层”(非技术术语;-)),工具提示出现在窗口后面。

在描述了这个问题之后,我想为您提供一个解决方案 – 但我从来没有找到一个好的解决方案。 叹。

希望附加信息足以让您找到所需的解决方案。

我在Windows XP上看到过这种情况,特别是在任务栏上。

你确定它是你的应用程序的问题,而不是操作系统?