レガシー VB アプリケーションを C#/Winforms に移植中です。ユーザー インターフェイスの大部分は完成していますが、いくつか掘り下げても解決できなかった問題があります。私のフォームには多数のグループ ボックスが含まれており、すべて同じ (グループ ボックス名などの識別子を除いて) で、それぞれに複数のコントロールが含まれています。コンテキスト メニューが表示され、子フォームを開いて設定を変更することができます。これらのグループ ボックスはそれぞれ物理オブジェクトを表し、無効にすることができます。グループ ボックスを無効にすると、ボックスのすべての子が無効になるか、非表示になります。グループ ボックスが無効になると、コンテキスト ストリップ メニューも変更され、コンテキスト メニューのメニュー項目の一部が無効になり、[有効] メニュー選択は、現在の状態を示して、チェックされているものとチェックされていないものを切り替えます。問題は、グループ ボックスの 1 つを無効にすると、ボックスは無効になりますが、グループ ボックスをクリックしてもコンテキスト メニューが開かなくなります。これはそれほど驚くべきことではありませんが、コンテキスト メニューを常に有効にしたままグループ ボックスを無効にする方法を見つけようとしています。これらのグループ ボックスの 1 つまたは複数を無効にする必要があります。現状では、グループ ボックスを無効にすると、コンテキスト メニューが起動しなくなるため、再度有効にする方法がありません。コンテキストメニューを常に有効にしたまま、グループボックスを無効にする方法を見つけようとしています。これらのグループ ボックスの 1 つまたは複数を無効にする必要があります。現状では、グループ ボックスを無効にすると、コンテキスト メニューが起動しなくなるため、再度有効にする方法がありません。コンテキストメニューを常に有効にしたまま、グループボックスを無効にする方法を見つけようとしています。これらのグループ ボックスの 1 つまたは複数を無効にする必要があります。現状では、グループ ボックスを無効にすると、コンテキスト メニューが起動しなくなるため、再度有効にする方法がありません。
古い VB コードはこれを行うことができますが、その方法はあまり明確ではなく、コードは多かれ少なかれ混乱しています。リバース エンジニアリングに時間をかけたくありません。
これを達成する方法についての提案をありがとう。回避策は、グループ ボックス内のすべてのコントロールを非表示にしてから、グループ ボックスの色を「表示」無効に変更することだと思います。