C# Windows 窗体 - 工具提示延迟不起作用
C# Windows Form - ToolTip Delay doesn't work
我试图通过 OnMouseHover 为工具提示添加延迟,但它似乎忽略了我指定的延迟(工具提示在悬停时立即显示,而不是在延迟之后显示)。我认为这将是一个简单的更改,但一定有我遗漏的东西。
我试过配置与工具提示相关的延迟,但没有任何效果。我还只包含 "DDToolTip.AutomaticDelay = 5000",并删除了其他属性,但这似乎也没有改变任何内容。
我也试过用 DDToolTip.SetToolTip(this.Parent, strTooltip, strTooltip);
替换 DDToolTip.Show(strTooltip, this.Parent, pnt, 10000);
,但这导致工具提示根本没有出现。
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)
{
}
}
我希望工具提示在鼠标悬停在按钮上指定时间后显示,而不是立即显示。
删除您的 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);
}));
});
我试图通过 OnMouseHover 为工具提示添加延迟,但它似乎忽略了我指定的延迟(工具提示在悬停时立即显示,而不是在延迟之后显示)。我认为这将是一个简单的更改,但一定有我遗漏的东西。
我试过配置与工具提示相关的延迟,但没有任何效果。我还只包含 "DDToolTip.AutomaticDelay = 5000",并删除了其他属性,但这似乎也没有改变任何内容。
我也试过用 DDToolTip.SetToolTip(this.Parent, strTooltip, strTooltip);
替换 DDToolTip.Show(strTooltip, this.Parent, pnt, 10000);
,但这导致工具提示根本没有出现。
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)
{
}
}
我希望工具提示在鼠标悬停在按钮上指定时间后显示,而不是立即显示。
删除您的 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);
}));
});