3

Windowsフォームの場合-MenuStripのドロップダウンアイテムにツールチップとドロップダウンアイテム自体がある場合、ツールチップはToolStripItemsの下に表示される可能性が約50%になります。

回避策は何ですか?

再現するには、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);
        }

.NET3.5を使用しています

4

2 に答える 2

2

このコードを試してください

//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);
}
于 2011-05-26T18:10:28.327 に答える
0

カスタムツールチップをサポートするToolStripの派生バージョンを実装するCodeProjectに関する記事があります。代替ソリューションになる可能性があります。 http://www.codeproject.com/Tips/376643/ToolStrip-with-custom-ToolTip

于 2013-02-10T00:46:17.027 に答える