drunkenprogram Ответов: 1

Я хочу просмотреть текст, который я нажимаю из menuscript в метке


Я хочу посмотреть текст, что я кнопку от menuscript на этикетке, такие как "авт -&ГТ; название" под menuscript.

string chkMenu = "";
               foreach (HybridDictionary hd in list)
               {
                   switch (hd["lvl"].ToString())
                   {
                       case "1":
                           if ("".Equals(chkMenu))
                               chkMenu = hd["menu_name"].ToString();

                           if (!chkMenu.Equals(hd["menu_name"].ToString()))
                           {
                               mnuStrip.Items.Add(mnuStripItem);
                               chkMenu = hd["menu_name"].ToString();
                           }
                           mnuStripItem = new ToolStripMenuItem(hd["menu_name"].ToString());
                           break;
                       case "2":
                           SSMenu = new ToolStripMenuItem(hd["menu_name"].ToString(), null, new EventHandler(ChildClick), hd["frm_name"].ToString());
                           mnuStripItem.DropDownItems.Add(SSMenu);
                           break;
                   }
                   mnuStrip.Items.Add(mnuStripItem);
               }
               this.MainMenuStrip = mnuStrip;
           }
           SSMenu = new ToolStripMenuItem("그룹", null, new EventHandler(ChildClick), "dwdErp.FrmSysDepartment");
           ChildClick(SSMenu,null);

┌─────────────────────┐
│роль auth │
│имя ┌───────────────┘
│код │
└─────┘
auth-> имя
┌──────────────────────────────────────────────────────┐
│элемент │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└──────────────────────────────────────────────────────┘

Что я уже пробовал:

private void 그룹mnuStrip_Click(object sender, EventArgs e)
        {
            viewmenu.Text = "auth->name";
        }

1 Ответов

Рейтинг:
1

Sandeep Mewara

Вы нажимаете на саму menustrip.

Определите событие и присоедините его к toolstripmenuitem. Затем это событие будет вызвано щелчком мыши, когда вы сможете получить доступ к элементу, нажатому, как показано ниже.

private void tsmItemClicked(object sender, EventArgs e)
{
    var itemText = (sender as ToolStripMenuItem).Text;
    MessageBox.Show(itemText);
}

Чтобы прикрепить событие click к menustrip во время выполнения:
tsmItem.Click += new EventHandler(tsmItemClicked);

Ссылка: Создание MenuStrip динамически в C#[^]


drunkenprogram

это все еще не работает.
и я использую ярлык под названием "viewmenu".

частная mnuStripItemClicked недействительным(объект отправителя, EventArgs в электронной)
{
var itemText = (отправитель как ToolStripMenuItem).Текст;
viewmenu.Text= (itemText);
мнустрипьем.Click += new EventHandler(mnuStripItemClicked);
}

Sandeep Mewara

Вы прикрепляете обработчик внутри этого метода: mnuStripItem.Click += new EventHandler(mnuStripItemClicked);

Это так не работает. Когда вы создали toolstripitem и добавили в меню во время выполнения, добавьте обработчик только тогда. уберите отсюда эту линию.

Кроме того, используйте отладчик Visual Studio, чтобы увидеть, как происходит поток. Похоже, вы просто делаете копипаст-это не поможет. Попытайтесь увидеть, как соединяются точки.