C#工具提示显示的时间不够长

时间:2011-11-22 11:09:26

标签: c# winforms tooltip

我有一个工具提示出现在鼠标悬停在图像上:

ToolTip tt = new ToolTip();
protected virtual void pictureBox_MouseHover(object sender, EventArgs e)
{
    tt.InitialDelay = 0;
    tt.SetToolTip(this.pictureBox, "Click 'LIVE ...");
}

我的问题是我的文字很长,工具提示消失得太快。如何让工具提示显示更长时间?

5 个答案:

答案 0 :(得分:17)

AutoPopDelay property设置为更高 - 默认为5000(5秒)

更新:我的错误:

  

延迟弹出窗口的最长时间是5000毫秒。对于较长的持续时间,请使用Show方法控制显示工具提示的确切时刻。

因此,使用此方法无法让工具提示显示超过5秒 - 相反,当用户将鼠标悬停在图片框上时,您需要使用“显示”来明确显示工具提示。只需将您SetToolTip的号码替换为Show事件处理程序中MouseHover的号码:

ToolTip tt = new ToolTip();
protected virtual void pictureBox_MouseHover(object sender, EventArgs e)
{
    tt.Show("Click 'LIVE ...", this.pictureBox, 10000);
}

答案 1 :(得分:4)

设置AutoPopDelay属性的值

 tt.AutoPopDelay = 10000;

答案 2 :(得分:3)

与Justin描述的答案不同,我无法使用show方法让工具提示显示的时间超过5秒。

我遇到的其他一个问题是AutomaticDelay属性。简而言之 - 如果您想要自定义AutoPopDelay,请执行 设置AutomaticDelay

设置此属性将自动设置... see MSDN

  

AutoPopDelay = 10 x AutomaticDelay

     

InitialDelay = AutomaticDelay

     

ReshowDelay =(0.2)x AutomaticDelay

以下代码对我有用:

ToolTip tt = new ToolTip();
private void someObjectName_MouseHover(object sender, EventArgs e) {
    tt = new ToolTip
    {
        AutoPopDelay = 15000,  // Warning! MSDN states this is Int32, but anything over 32767 will fail.
        ShowAlways = true,
        ToolTipTitle = "Symbolic Name",
        InitialDelay = 200,
        ReshowDelay = 200,
        UseAnimation = true
    };
    tt.SetToolTip(this.someObjectName, "This is a long message");
}

加成:

private void someObjectName_MouseLeave(object sender, EventArgs e)
    {
        tt.Active = false;
    }

答案 3 :(得分:2)

我认为

ToolTip.Show(text, [control], time in milliseconds)what you need

这将允许您显示特定毫秒数的长文本。此外,如果你的文字太长,那么你可以在文本之间使NewLine处于惰性状态,这样它就会被包裹起来而不会显示为跨越表格的长工具提示

答案 4 :(得分:0)

我发现以下步骤对我有用:

设置为所需的1/10。

然后,您可以随后调整

MSDN Link