StatusBar MenuStripItemマウスの選択

私は今日あなたに私の問題を公開します。現在の名前を表示するためのstatusStripLabelを作成しました。これは、マウスがマウスを置いたときにMenuStripまたはToolStripMenuItemの選択された項目です。私はこのコードを持っている:(それは働いている)

private void ouvrirToolStripMenuItem1_MouseHover(object sender, EventArgs e)
{
    ToolStripMenuItem houver = (ToolStripMenuItem)sender;
    MenuStatusLabel.Text = houver.Text;
}

しかし、私はすべてのツールストリップメニューを作成したいだけでなく、1つも作成したくありません。 (関数など)

1
nl ru de
追加された 著者 Karthik,
追加された 著者 Karthik,
追加された 著者 Karthik,
私はそれらの両方を読んでいるが、私は理解していない!
追加された 著者 ShadoWalker,
私はそれらの両方を読んでいるが、私は理解していない!
追加された 著者 ShadoWalker,
私はそれらの両方を読んでいるが、私は理解していない!
追加された 著者 ShadoWalker,

3 答え

This fit from your problem and good solution, I modified the code from this Link

 private void Form1_Load(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Ready...";
            foreach (ToolStripMenuItem item in menuStrip1.Items)
            {
                TraverseMenuItemHint(item);
            }
        }

        private void MenuHint_Hint(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = (sender as ToolStripMenuItem).Text;
        }

        private void TraverseMenuItemHint(ToolStripMenuItem element)
        {
            for (int i = 0; i < element.DropDownItems.Count; i++)
            {
                if (!(element.DropDownItems[i] is ToolStripSeparator))
                {
                    ToolStripMenuItem item = element.DropDownItems[i] as ToolStripMenuItem;
                    if (item.Text.Length > 0)
                        item.MouseEnter += MenuHint_Hint;
                    TraverseMenuItemHint(item);
                }
            }
        }

        private void fileToolStripMenuItem_DropDownClosed(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Ready...";
    }
1
追加された
はいそれは仕事です!ご回答有難うございます。
追加された 著者 ShadoWalker,

This fit from your problem and good solution, I modified the code from this Link

 private void Form1_Load(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Ready...";
            foreach (ToolStripMenuItem item in menuStrip1.Items)
            {
                TraverseMenuItemHint(item);
            }
        }

        private void MenuHint_Hint(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = (sender as ToolStripMenuItem).Text;
        }

        private void TraverseMenuItemHint(ToolStripMenuItem element)
        {
            for (int i = 0; i < element.DropDownItems.Count; i++)
            {
                if (!(element.DropDownItems[i] is ToolStripSeparator))
                {
                    ToolStripMenuItem item = element.DropDownItems[i] as ToolStripMenuItem;
                    if (item.Text.Length > 0)
                        item.MouseEnter += MenuHint_Hint;
                    TraverseMenuItemHint(item);
                }
            }
        }

        private void fileToolStripMenuItem_DropDownClosed(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Ready...";
    }
1
追加された
はいそれは仕事です!ご回答有難うございます。
追加された 著者 ShadoWalker,

This fit from your problem and good solution, I modified the code from this Link

 private void Form1_Load(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Ready...";
            foreach (ToolStripMenuItem item in menuStrip1.Items)
            {
                TraverseMenuItemHint(item);
            }
        }

        private void MenuHint_Hint(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = (sender as ToolStripMenuItem).Text;
        }

        private void TraverseMenuItemHint(ToolStripMenuItem element)
        {
            for (int i = 0; i < element.DropDownItems.Count; i++)
            {
                if (!(element.DropDownItems[i] is ToolStripSeparator))
                {
                    ToolStripMenuItem item = element.DropDownItems[i] as ToolStripMenuItem;
                    if (item.Text.Length > 0)
                        item.MouseEnter += MenuHint_Hint;
                    TraverseMenuItemHint(item);
                }
            }
        }

        private void fileToolStripMenuItem_DropDownClosed(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "Ready...";
    }
1
追加された
はいそれは仕事です!ご回答有難うございます。
追加された 著者 ShadoWalker,