【问题标题】:Is there a way to suppress the ToolTip Popup event when calling SetToolTip?有没有办法在调用 SetToolTip 时抑制 ToolTip Popup 事件?
【发布时间】:2014-09-23 12:23:31
【问题描述】:

我的表单中有几个按钮,它们的用途会根据某些事件以编程方式更改(特别是从“添加”到“删除”)。

我想更改 ToolTip 的文本以反映此功能更改,但是当调用 SetToolTip 时,它似乎触发 Popup 并立即显示新的工具提示文本。这种行为是不可取的。

/* Change the button to 'Remove' */ 
btnAddRemove.BackgroundImage = Properties.Resources.Minus;
toolTip.SetToolTip(btnAddRemove, "Remove"); 

/* Change the button to 'Add' */ 
btnAddRemove.BackgroundImage = Properties.Resources.Plus; 
toolTip.SetToolTip(btnAddRemove, "Add"); 

有没有办法覆盖这个默认行为?


编辑:抱歉,我应该说,它似乎触发了 PopUp 事件。当调用 SetToolTip 时,新的工具提示文本会立即闪烁,即使没有经过必要的时间来显示它。

【问题讨论】:

  • 你在说什么necessary time
  • AutomaticDelayAutoPopDelayInitialDelayReshowDelay 的设置延迟 - 在测试期间所有这些设置为 10000
  • 可能值得不要更改单个按钮的文本,而是更改 2 个按钮的可见性:btnAddbtnRemove。这样您就不必更改文本/图标/工具提示/在按钮单击事件中进行一些丑陋的检查(相反会有 2 个专用事件,一个用于添加,一个用于删除)。使用FlowLayoutPanel/TableLayoutPanel 可以轻松地执行按钮布局,并且使用这些是一个简短但在 wpf 方向上迈出的一步。

标签: c# winforms tooltip


【解决方案1】:

已经去过那里,我认为这是一个 Winforms 错误。此问题不会出现在任何机器/操作系统/配置上,但这是一个丑陋的解决方法,几乎​​肯定会使其消失:

toolTip1.Active = false;
toolTip1.SetToolTip(button, "hello");
toolTip1.Active = true;

【讨论】:

    猜你喜欢
    • 2013-12-13
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 2020-03-13
    • 2010-09-16
    • 2010-10-28
    相关资源
    最近更新 更多