C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■99603 / 1階層)  メニューのショートカットの無効化に関して
□投稿者/ Hongliang (1232回)-(2022/05/02(Mon) 17:59:36)
https://docs.microsoft.com/ja-jp/dotnet/desktop/winforms/controls/how-to-disable-toolstripmenuitems?view=netframeworkdesktop-4.8
ここのヒントにあるように、サブメニュー項目も無効化、つまりEnabledをFalseに設定する必要があります。
再帰呼び出しを使えば配下の増減を気にすることなくまとめて無効化できます。
ついでに次のような拡張メソッドにしてしまえば便利ですね。

<System.Runtime.CompilerServices.Extension>
Public Sub SetEnabled(ByVal item As ToolStripItem, ByVal enabled As Boolean)
    item.Enabled = enabled
    Dim dd = TryCast(item, ToolStripDropDownItem)
    If Not(dd Is Nothing) Then
        For Each child As ToolStripItem In dd.DropDownItems
            SetEnabled(child, enabled)
        Next
    End If
End Sub

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←メニューのショートカットの無効化に関して /Ryu-J →Re[2]: メニューのショートカットの無効化に関して /Ryu-J
 
上記関連ツリー

メニューのショートカットの無効化に関して / Ryu-J (22/05/02(Mon) 15:51) #99601
メニューのショートカットの無効化に関して / Hongliang (22/05/02(Mon) 17:59) #99603 ←Now
  └ Re[2]: メニューのショートカットの無効化に関して / Ryu-J (22/05/03(Tue) 09:37) #99605 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信