gpt4 book ai didi

c# - Windows 工具提示未显示

转载 作者:行者123 更新时间:2023-11-30 18:44:52 25 4
gpt4 key购买 nike

我有一个代码以标准方式为 Winforms 控件设置工具提示 like this :-

Tooltip tooltip = new tooltip();

toolTip.SetToolTip(control, text);

在同一个应用程序中,有一个窗口正在使用 Direct3D SDK 以每秒 5 帧的速度渲染一些图像的电影。现在,当正在渲染电影时,即当它处于 PLAY 模式时,工具提示永远不会出现。只要我暂停电影,工具提示就会开始出现。

  • 案例 1:

作为解决方法,我对代码做了以下更改 -

Tooltip tooltip = new tooltip();

toolTip.InitialDelay = 50;

toolTip.SetToolTip(control, text);

现在,只要我引入 INITIAL DELAY,无论电影是否正在播放,工具提示都会呈现?

  • 案例 2:

如果我不放置 Initial Delay 而是订阅控件的 OnMouseHover 事件,然后将以上两行代码显式放置在偶数处理程序中,那么工具提示也不会丢失。它们正常出现。但是,这不是显示工具提示的标准做法。

任何人都可以纠正我在工具提示渲染中出现的问题吗?我正在使用 .Net 2.0 和 C#。

最佳答案

D3D 视频和工具提示都使用覆盖(我使用的屏幕捕获程序的数量因此不捕获工具提示!);所以我相信您会看到一些来自 D3D 叠加层的干扰。

可能是视频过度绘制了工具提示,因为它是在播放期间呈现的 - 所以工具提示就在那里,只是您看不到它。

然而,我很困惑,为什么设置初始延迟会突然让它起作用!也就是说,InitialDelay 控制工具提示第一次显示时应用的延迟,因此它可能与工具提示抓取要显示的叠加表面的方式发生变化有关。

当然,我会使用它作为解决方法,而不是像其他答案所说的那样重复构建和分配工具提示,因为它可能会占用资源。

我会找到可行的最小 InitialDelay 并使用它。

最后 - 我们在这里谈论的是什么版本的 Windows 和 DX?还有几个其他线程,从 here 开始并在其中指向 GameDev 的链接中,关于工具提示和 DirectX 的问题;并指出一个事实,即这里可能发生的不仅仅是一些 .Net 怪事!

关于c# - Windows 工具提示未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2055405/

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