提示框显示不一致

5
我有一个简单的WinForms表单(作为模态对话框使用),上面有几个控件。我想为其中的一个文本框控件显示工具提示。我在我的表单中添加了一个工具提示组件,并在所需控件的构造函数中进行了'SetToolTip'调用。我正在使用各种延迟属性的默认值。
工具提示的显示非常不稳定。当鼠标悬停在文本框上时,有时会显示工具提示。有时只有在我在控件上移动光标时才会显示。将光标移出并再次移入可能会使工具提示显示。当它确实显示时,时间似乎比InitialDelay长得多。如果它成功几次,那么它就会停止工作,无论我离开/进入控件多少次都不会再次出现工具提示。
我尝试将ShowAlways设置为true,但没有任何区别。
有什么建议可以让我的工具提示可靠地工作吗?
谢谢。

我一般觉得 Windows 中的工具提示不太可预测。其他程序也是这样吗?.NET 应用程序呢? - Thomas
我不确定我以前是否尝试过在winforms应用程序中使用工具提示。所以,到目前为止只有这个程序。我是在IDE内运行调试版本。之后我进行了发布版本的构建,并在IDE外运行它。它仍然存在相同的问题。我注意到当我悬停在控件上时,工具提示不会显示。但如果我移动鼠标,它就会显示。(即,工具提示不是在MouseEnter触发,而是在MouseMove触发。)听到别人也遇到了工具提示的不可预测结果真是令人鼓舞。谢谢。 - JNygren
确保TextBox已启用;当禁用时,它不会触发显示ToolTip所需的事件。如果您不希望用户更改数据,请将TextBox设置为只读。 - Keith Robertson
1个回答

2
我曾经成功地使用工具提示,以下是我复制它的方法。
我在一个表单上放置了一个文本框、标签和工具提示控件,该表单被用作我的模态对话框。
我的鼠标进入事件处理程序如下所示:
    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”。还要使您的偏移量使工具提示不会遮挡控件的任何部分,因为这似乎会导致奇怪的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接