本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("メニューオープン");
}
