BuZ*_*uZz 13 c# tooltip winforms
我有一个工具提示出现在鼠标悬停在图像上:
ToolTip tt = new ToolTip();
protected virtual void pictureBox_MouseHover(object sender, EventArgs e)
{
tt.InitialDelay = 0;
tt.SetToolTip(this.pictureBox, "Click 'LIVE ...");
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我的文字很长,工具提示消失得太快.如何让工具提示显示更长时间?
Jus*_*tin 17
将AutoPopDelay属性设置为更高的值 - 默认为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);
}
Run Code Online (Sandbox Code Playgroud)
小智 6
与 Justin 描述的答案不同,我无法使用该show方法让 ToolTip 显示超过 5 秒。
我遇到的其他问题之一是AutomaticDelay物业。长话短说-如果你想定制AutoPopDelay也没有设置AutomaticDelay。
设置此属性将自动设置...参见 MSDN:
AutoPopDelay = 10 x 自动延迟
初始延迟 = 自动延迟
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");
}
Run Code Online (Sandbox Code Playgroud)
奖金:
private void someObjectName_MouseLeave(object sender, EventArgs e)
{
tt.Active = false;
}
Run Code Online (Sandbox Code Playgroud)