サブメニューが開かれたことを知る

スポンサーリンク

本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("メニューオープン");
}
タイトルとURLをコピーしました