【发布时间】:2009-10-20 09:07:26
【问题描述】:
我有一个带有工具提示的窗口窗体,其中有几个按钮。 当鼠标悬停在工具提示的按钮上时,工具条按钮开始闪烁......看起来它每秒都会获得和失去焦点。 如果用户在按钮没有焦点的时候单击,那么单击将导致什么都不做,因此用户必须一次又一次地单击按钮,直到他得到正确的时间。
有人知道吗?
我需要尽快得到一些答案...
非常感谢
【问题讨论】:
标签: winforms
我有一个带有工具提示的窗口窗体,其中有几个按钮。 当鼠标悬停在工具提示的按钮上时,工具条按钮开始闪烁......看起来它每秒都会获得和失去焦点。 如果用户在按钮没有焦点的时候单击,那么单击将导致什么都不做,因此用户必须一次又一次地单击按钮,直到他得到正确的时间。
有人知道吗?
我需要尽快得到一些答案...
非常感谢
【问题讨论】:
标签: winforms
我找到了原因... Windows 窗体中的工具条默认情况下将工具提示设置为自动,如果工具提示在任务栏上打开,则工具条失去焦点。
解决方案是禁用工具提示或将其设置为手动并在其他位置显示工具提示。
【讨论】:
以下是手动在项目上方显示工具提示的代码:
private readonly ToolTip currentToolTip = new ToolTip();
private void ToolStripItem_MouseEnter(object sender, EventArgs e)
{
ToolStripItem item = (ToolStripItem)sender;
this.currentToolTip.Show(item.ToolTipText, item.Owner, item.Bounds.X, -20);
}
private void ToolStripItem_MouseLeave(object sender, EventArgs e)
{
ToolStripItem item = (ToolStripItem)sender;
this.currentToolTip.Hide(item.Owner);
}
您必须将事件处理程序添加到所有 ToolStripItems 并将 ToolStrips 的 ShowItemToolTips 设置为 false。
【讨论】: