StatusBar MenuStripItem Выберите мышь

Сегодня я раскрываю вам свою проблему. Я создал statusStripLabel для отображения текущего имени - выбранного элемента MenuStrip или ToolStripMenuItem, когда мышка наводила его. У меня есть этот код: (он работает)

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

Но я хочу сделать для всех toolstripmenu и не один. (функция или что-то в этом роде)

1
nl ja 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, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot