MFC のように、ユーザーがメニュー項目を開こうとしたときに更新通知を受け取るメカニズムはありますか。直接的な方法がないことはわかっていますが、ハックがたくさんあるはずです。それが私が求めていることです。
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 に答える