【问题标题】:Tooltip displays inconsistantly工具提示显示不一致
【发布时间】:2012-11-14 19:16:42
【问题描述】:

我有一个简单的 winforms 表单(用作模式对话框),上面有几个控件。我想为其中一个文本框控件显示一个工具提示。我在表单中添加了一个工具提示组件,并在表单的构造函数中调用了所需控件的“SetToolTip”。我正在为各种延迟属性使用默认值。

工具提示的显示非常不稳定。当鼠标悬停在文本框上时,有时会显示工具提示。有时它只会在我在控件上方移动光标时显示。将光标移出和移回可能会显示工具提示。当它确实显示时,时间似乎比 InitialDelay 长得多。如果它确实工作了几次,它就会停止工作,并且离开/进入控件的次数不会再次出现工具提示。

我尝试将 ShowAlways 设置为 true,但这没有任何区别。

有什么建议可以让我的工具提示可靠地工作吗?

谢谢。

【问题讨论】:

  • 我通常发现 Windows 中的工具提示无法预测。其他程序的行为方式是否相同?其他 .NET 应用程序呢?
  • 我不确定我以前是否尝试过在 winforms 应用程序中使用工具提示。所以,到目前为止只有这个程序。我在 IDE 中运行调试版本。我已经完成了一个发布版本,并在 IDE 之外运行它。它仍然有同样的问题。我注意到当我将鼠标悬停在控件上时,工具提示不显示。但是如果我移动鼠标,它就会显示出来。 (即工具提示不是在 MouseEnter 上触发,而是在 MouseMove 上触发。)听到其他人使用工具提示获得不可预知的结果是令人鼓舞的。谢谢。
  • 确保 TextBox 已启用;它不会触发禁用时显示工具提示所需的事件。如果您不希望用户更改数据,请将 TextBox 设为只读。

标签: winforms tooltip


【解决方案1】:

我之前有可靠的工具提示,这就是我复制它的方法。

我在一个表单上放置了一个文本框、标签和 ToolTip 控件,用作我的模态对话框。

文本框的 MouseEnter 事件处理程序如下所示:

    private void textBox1_MouseEnter(object sender, EventArgs e)
    {
        int XOffset = 0;
        int YOffset = -55;
        int Duration = 3000;

        toolTip1.ToolTipTitle = "ToolTip.";

        toolTip1.Show( "This is my tooltip. there are many like it but this one is mine",
               textBox1, XOffset, YOffset, Duration);
    }

就是这样。当我用鼠标输入文本框时,工具提示出现 3 秒钟,然后消失,并且一直如此。注意我不必在任何地方调用“SetToolTip”。另外,请进行偏移,以免工具提示遮挡控件的任何部分,因为这似乎会导致奇怪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多