TreeView がソリューション エクスプローラーとして機能する準 IDE であるアプリケーションがあります。ユーザーが設計するのは、このような画面レイアウトです。
Root
Menus
MainMenu
MenuItem1
Button Bars
MainBar
Button1
私はもともとコンテキストメニューに問題がありました。上記の例では、MenuItem1 にはコンテキスト メニューがありませんが、MainMenu にはあります。さて、MenuItem1 は MainMenu からコンテキスト メニューを継承します。空のコンテキスト メニューを作成し、それを MenuItem1 に割り当てることで、これを実現しました。もっとエレガントなものが欲しいのですが。
ツールチップにも同じ問題があります。MainMenu に割り当てた場合、MenuItem1 は MainMenu に割り当てられたものを継承します。MenuItem1 ツールチップを null に設定しようとしましたが、何もしませんでした。"" に設定すると、空の文字列で MainMenu ツールチップがオーバーライドされますが、MenuItem1 にカーソルを合わせると、小さな空のツールチップ ボックスが表示されます。ボックスが空の文字列の場合、システムはボックスを表示しないほどスマートだと思っていましたが、明らかにそうではありませんでした。
子が親からコンテキスト メニューとツールチップのプロパティを継承しないようにするにはどうすればよいですか?
更新しました
これにはまだ問題があります。Snoop を使用して項目を分析したところ、これらのプロパティが継承されていることが示されましたが、継承を解除する解決策はまだ見つかりません。
私が考えることができる唯一の厄介なことは、すべてのツールチップが ToolTipOpening イベントを処理し、文字列を検査することです。文字列に長さがなければ、すぐに閉じてください。もっと良い方法があるはずです。