当用户尝试打开菜单项时,是否有任何机制可以让我获得更新通知,例如在 MFC 中。我知道没有直接的方法,但应该有很多黑客,这就是我要问的。
Priyank Bolia
问问题
113 次
1 回答
2
什么架构?
在 winforms ( MenuStrip
) 中你可以使用DropDownOpening
事件 - 那可以吗?
在较旧的 上MenuItem
,有Popup
类似的事件。
我不确定WPF ...
这证明了两者(MenuItem
首先,然后ToolStripMenuItem
):
using System;
using System.Windows.Forms;
static class Program {
[STAThread]
static void Main() {
// older menuitem
MenuItem mi;
using (Form form = new Form {
Menu = new MainMenu {
MenuItems = {
(mi = new MenuItem("abc"))
}
}
})
{
mi.MenuItems.Add("dummy");
mi.Popup += delegate {
mi.MenuItems.Clear();
mi.MenuItems.Add(DateTime.Now.ToLongTimeString());
};
Application.Run(form);
}
MenuStrip ms;
ToolStripMenuItem tsmi;
using (Form form = new Form {
MainMenuStrip = (ms = new MenuStrip {
Items = {
(tsmi = new ToolStripMenuItem("def"))
}
})
})
{
form.Controls.Add(ms);
tsmi.DropDownItems.Add("dummy");
tsmi.DropDownOpening += delegate {
tsmi.DropDownItems.Clear();
tsmi.DropDownItems.Add(DateTime.Now.ToLongTimeString());
};
Application.Run(form);
}
}
}
于 2009-02-08T09:21:42.173 回答