我有一个工具提示出现在鼠标悬停在图像上:
ToolTip tt = new ToolTip();
protected virtual void pictureBox_MouseHover(object sender, EventArgs e)
{
tt.InitialDelay = 0;
tt.SetToolTip(this.pictureBox, "Click 'LIVE ...");
}
我的问题是我的文字很长,工具提示消失得太快。如何让工具提示显示更长时间?
答案 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)