公式アカウントからの投稿が始まります

c# のwindowsフォームアプリケーションでフォーム①に配置されたリッチテキストボックスのフォント大小や色などを変更するメニュー/機能をToolStripで作成しました。
ここまでは良いのですが、別のフォーム②に配置したリッチテキストにもフォーム①のToolstripを使用したい(使いまわしたい)と思いました。しかし方法がわかりません。Toolstripをユーザーコントロールみたいに共通化されたコントロールとして扱う方法はないでしょうか。ご回答よろしくお願い致します。

A 回答 (1件)

デザイナ上でToolStripが編集できなくてよいのであれば、ToolStripを用意したフォームBaseを用意し、フォーム①、フォーム②は、フォームBaseを継承して作ればいいかと思います。



継承先でToolStrip内のコントロールをコードで操作したい時は、ToolStrip内のコントロールのModifiersはProtectedにしなければなりません。

ToolStripを追加したユーザーコントロールAを用意し、フォーム①、フォーム②に、ユーザーコントロールAを配置してもできます。
が、この場合は、デザイナ上はUserControlオブジェクトとしての扱いとなるため、プロパティウィンドウにはUserControlのプロパティが表示されることになります。
この場合は、ToolStrip内のコントロールをコードで操作したい時は、ToolStrip内のコントロールのModifiersはPublicやInternalなどにしなければなりません。

ToolStrip自体をデザイナで編集中に視覚的な確認ができなくてよいのであれば、ToolStripを継承し、必要なアイテムをコンストラクタなどで追加するコードが実装されたToolStripExクラスを用意するなどでも可能です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
似たような感じですが、下記で実現できました。
https://www.javaer101.com/en/article/20787076.html

お礼日時:2021/03/01 12:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!