我正在尝试通过OnMouseHover合并ToolTip的延迟,但是它似乎忽略了我指定的延迟(ToolTip在悬停时立即显示,而不是在延迟后显示)。我认为这将是一个简单的更改,但是必须缺少一些内容。
我尝试配置与ToolTip相关的延迟,但是没有任何效果。我还仅添加了“ DDToolTip.AutomaticDelay = 5000”,并删除了其他属性,但似乎也没有任何改变。
我也尝试用DDToolTip.Show(strTooltip, this.Parent, pnt, 10000);
替换DDToolTip.SetToolTip(this.Parent, strTooltip, strTooltip);
,但这导致工具提示根本不显示。
public DDButton()
{
InitializeComponent();
DDToolTip = new ToolTip();
DDToolTip.InitialDelay = 5000;
DDToolTip.AutoPopDelay = 5000;
DDToolTip.AutomaticDelay = 5000;
DDToolTip.ReshowDelay = 5000;
InitDefaults();
}
public DDButton(DDButton btnLastButton)
{
InitializeComponent();
DDToolTip = new ToolTip();
DDToolTip.InitialDelay = 5000;
DDToolTip.AutoPopDelay = 5000;
DDToolTip.AutomaticDelay = 5000;
DDToolTip.ReshowDelay = 5000;
InitDefaults();
}
...
protected override void OnMouseHover(EventArgs e)
{
Point pnt = new Point();
pnt.X = this.Left + this.Size.Width + 10;
pnt.Y = this.Bottom + 10;
String strTooltip = "";
try
{
strTooltip = strTooltip.Trim('\n');
DDToolTip.Show(strTooltip, this.Parent, pnt, 10000);
base.OnMouseHover(e);
Capture = false;
}
catch (Exception)
{
}
}
我希望将工具提示悬停在按钮上指定的时间后才能显示,而不是立即显示。
答案 0 :(得分:0)
删除OnMouseHover(EventArgs e)函数。 您只需要:
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1500;
toolTip1.AutomaticDelay = 1500;
toolTip1.ReshowDelay = 1500;
toolTip1.SetToolTip(myControl, "test");
如果使用Show(),它将立即显示
或者您总是可以像这样疯狂地做某事:
Task.Run(async () =>
{
await Task.Delay(500);
this.Invoke((Action)(() =>
{
toolTip1.Show("my text", myControl);
}));
});