C#工具提示显示的时间不够长
我有一个工具提示出现在鼠标hover在图像上:
ToolTip tt = new ToolTip(); protected virtual void pictureBox_MouseHover(object sender, EventArgs e) { tt.InitialDelay = 0; tt.SetToolTip(this.pictureBox, "Click 'LIVE ..."); }
我的问题是我的文字很长,工具提示消失得太快。 如何让工具提示显示更长时间?
将 AutoPopDelay
属性设置为更高 – 默认为5000(5秒)
更新:我的错误:
延迟弹出窗口的最长时间是5000毫秒。 对于较长的持续时间,请使用Show方法控制显示工具提示的确切时刻。
因此,使用此方法无法使工具提示显示超过5秒 – 相反,当用户将鼠标hover在图片框上时,您需要使用“显示”来明确显示工具提示。 只需将您对SetToolTip
的调用替换为在MouseHover
事件处理程序中Show
一个:
ToolTip tt = new ToolTip(); protected virtual void pictureBox_MouseHover(object sender, EventArgs e) { tt.Show("Click 'LIVE ...", this.pictureBox, 10000); }
设置AutoPopDelay属性的值
tt.AutoPopDelay = 10000;
ToolTip.Show(text, [control], time in milliseconds)
是我所需要的
这将允许您显示特定毫秒数的长文本。 此外,如果您的文本太长,那么您可以在文本之间使NewLine
处于惰性NewLine
,这样它就会被包裹起来而不会显示为跨越表单的长工具提示
与Justin描述的答案不同,我无法使用show
方法让ToolTip显示的时间超过5秒。
我遇到的其他一个挂断是AutomaticDelay
属性。 长话短说 – 如果你想自定义AutoPopDelay
不设置AutomaticDelay
。
设置此属性将自动设置… 请参阅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; }
我发现以下步骤对我有用:
将automaticdelay设置为所需autopopdelay的 1/10。
然后你可以调整你的initialdelay和reshowdelay 。
MSDN链接