“工具提示”如果 ToolStripItems 有下拉项,则被 ToolStripItems 覆盖?

发布于 2024-08-28 03:04:41 字数 788 浏览 8 评论 0原文

在 Windows 窗体中 - 如果 MenuStrip 的下拉项具有工具提示,并且下拉项本身具有工具提示,则工具提示将有大约 50% 的机会显示在 ToolStripItems 下方。

解决方法是什么?

要重现,您可以在 Visual Studio 中创建 MenuStrip,或者仅将以下代码添加到表单中,然后尝试将鼠标悬停在菜单项上以获取工具提示:

        //Make a menu strip
        MenuStrip menu = new MenuStrip();            
        this.Controls.Add(menu);

        //Add category "File"
        ToolStripMenuItem fileItem = new ToolStripMenuItem("File");
        menu.Items.Add(fileItem);

        //Add items
        for (int i = 0; i < 10; i++)
        {
            ToolStripMenuItem item = new ToolStripMenuItem("item");
            item.ToolTipText = "item tooltip";
            item.DropDownItems.Add("sub item");

            fileItem.DropDownItems.Add(item);
        }

我正在使用 .NET 3.5

In Windows Forms - if the dropdown items of a MenuStrip has tooltips and dropdown items themselves the tooltip will have about a 50% chance of showing up below the ToolStripItems.

What is the workaround?

To repro you can create the MenuStrip in Visual Studio or just add the following code to a form and then try to hover your mouse over the menu items to get a tooltip:

        //Make a menu strip
        MenuStrip menu = new MenuStrip();            
        this.Controls.Add(menu);

        //Add category "File"
        ToolStripMenuItem fileItem = new ToolStripMenuItem("File");
        menu.Items.Add(fileItem);

        //Add items
        for (int i = 0; i < 10; i++)
        {
            ToolStripMenuItem item = new ToolStripMenuItem("item");
            item.ToolTipText = "item tooltip";
            item.DropDownItems.Add("sub item");

            fileItem.DropDownItems.Add(item);
        }

I am using .NET 3.5

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦幻之岛 2024-09-04 03:04:41

试试这个代码

//Make a menu strip
MenuStrip menu = new MenuStrip();
this.Controls.Add(menu);

//Add category "File"
ToolStripMenuItem fileItem = new ToolStripMenuItem("File");
menu.Items.Add(fileItem);

this.toolTip = new ToolTip();
this.toolTip.AutoPopDelay = 0;
this.toolTip.AutomaticDelay = 0;
this.toolTip.UseAnimation = true;

//Add items
for (int i = 0; i < 10; i++)
{
    ToolStripMenuItem item = new ToolStripMenuItem("item");

    //disable the default tool tip of ToolStripMenuItem
    item.AutoToolTip = false;

    //instead, use Tooltip class to show to text when mouse hovers the item
    item.MouseHover += new EventHandler(item_MouseHover);
    item.DropDownItems.Add("sub item");

    fileItem.DropDownItems.Add(item);
}

void item_MouseHover(object sender, EventArgs e)
{
    ToolStripMenuItem mItem = (ToolStripMenuItem)sender;
    toolTip.Show("tool tip", mItem.Owner, 1500);
}

Try this code

//Make a menu strip
MenuStrip menu = new MenuStrip();
this.Controls.Add(menu);

//Add category "File"
ToolStripMenuItem fileItem = new ToolStripMenuItem("File");
menu.Items.Add(fileItem);

this.toolTip = new ToolTip();
this.toolTip.AutoPopDelay = 0;
this.toolTip.AutomaticDelay = 0;
this.toolTip.UseAnimation = true;

//Add items
for (int i = 0; i < 10; i++)
{
    ToolStripMenuItem item = new ToolStripMenuItem("item");

    //disable the default tool tip of ToolStripMenuItem
    item.AutoToolTip = false;

    //instead, use Tooltip class to show to text when mouse hovers the item
    item.MouseHover += new EventHandler(item_MouseHover);
    item.DropDownItems.Add("sub item");

    fileItem.DropDownItems.Add(item);
}

void item_MouseHover(object sender, EventArgs e)
{
    ToolStripMenuItem mItem = (ToolStripMenuItem)sender;
    toolTip.Show("tool tip", mItem.Owner, 1500);
}
月竹挽风 2024-09-04 03:04:41

CodeProject 上有一篇文章实现了具有自定义工具提示支持的 ToolStrip 的派生版本。可能是一个替代解决方案。
http://www.codeproject.com/Tips/376643/ToolStrip-with -自定义工具提示

There is an article on CodeProject that implements a derived version of ToolStrip with custom tool tip support. Could be an alternative solution.
http://www.codeproject.com/Tips/376643/ToolStrip-with-custom-ToolTip

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文