c# - 在非焦点 ToolStripItem 上显示工具提示

标签 c# .net winforms tooltip toolstrip

当您将鼠标悬停在 ToolStripItems 上时,即使它们所在的窗体不在焦点上,ToolStripItems 也会显示事件突出显示。但是,除非表单获得焦点,否则它们不会显示工具提示。我看过 ToolStrip 'click-though' hack .任何人都知道如何让 ToolStripButton 在其父窗体未处于焦点时显示其工具提示?

谢谢!

最佳答案

问题是像 ToolStripButton 或 ToolStripDropDownButton 这样的 ToolStrip“控件”不继承自 Control。现在我通过在用户将鼠标悬停在按钮上时聚焦 ToolStrip 来解决这个问题。按钮的 MouseHover 事件触发得太晚了——在“显示工具提示”代码运行之后,所以我扩展了 ToolStripDropDownButton 类并使用了我的新按钮。此方法适用于任何其他继承自 ToolStripItem 的类似按钮的类

public class ToolStripDropDownEx : ToolStripDropDownButton
{
    public ToolStripDropDownEx(string text)
    {
    }

    protected override void OnMouseHover(EventArgs e)
    {
        if (this.Parent != null)
            Parent.Focus();
        base.OnMouseHover(e);
    } 
}

关于c# - 在非焦点 ToolStripItem 上显示工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/143058/

相关文章:

C# TextBox NewLine 在 KeyDownEvent 上模拟 Ctrl+Enter

c# - SqlDataSource OnInserted 过早触发

c# - 带有 Mysql ADO.NET 提供程序的 Mysql Ref Cursor

c# - 如何获取世界上所有城市的列表及其对应的时区信息(包括夏令时)

c# - 使用单声道 aot/aot-full 编译 : nothing appears to happen?

c# - 如何在可以再次按下按钮后实现延迟

winforms - 多显示器硬件加速

c# - 将 TypeOf "List<int>"与 "System.Collections.Generic.List<int>"进行比较

.net - 如何在设计时设置控件的父级

c# - 检查用户访问权限的设计模式.net