本TipsはWPFのみとなります。あらかじめご了承ください。
MenuItemクラスのIsSubmenuOpenプロパティにTrueを設定すると、サブメニューが開かれたことを知ることができます。
また、サブメニューが開かれたときの処理は SubmenuOpendイベントで行います。
下記は、[編集]メニューの[検索と置換]のサブメニューが開かれたときに「メニューオープン」というメッセージを表示する例です。
XAMLの例
<DockPanel Name="Dock1"> <Menu DockPanel.Dock="Top"> <MenuItem Header="ファイル(_F)"> <MenuItem Command="Save"/> <Separator /> <MenuItem Command="Close" /> </MenuItem> <MenuItem Header="編集"> <MenuItem Header="コピー" /> <MenuItem Header="切り取り" /> <MenuItem Header="貼り付け" /> <MenuItem Header="検索と置換" IsSubmenuOpen="True" Name="menuEditSearchReplace"> <MenuItem Header="検索" /> <MenuItem Header="置換" /> </MenuItem> </MenuItem> </Menu> <TextBox Name="TextBox1" TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" /> </DockPanel>
VBの例
' サブメニューが開かれた場合の処理 Private Sub menuSearchReplace_SubmenuOpened(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles menuEditSearchReplace.SubmenuOpened MessageBox.Show("メニューオープン") End Sub
C#の例
// サブメニューが開かれた場合の処理 private void menuEditSearchReplace_SubmenuOpened(object sender, RoutedEventArgs e) { MessageBox.Show("メニューオープン"); }