- 締切済み
MenuStripの継承でプロパティが反映されない
お世話になっております。 Visual Studioを使用してプログラムを実施しております。 MenuStripクラスを継承した自作クラスAをFormに張り付けて、 自作クラスBを作成しました。 Visual Studio上で、自作クラスBを開き、自作クラスAのプロパティ「Items」を使用して メニューアイテムの設定を変更しようとしているのですが、「Items」の設定が、自作クラスB のデザイナに反映されず困っております。。。 MenuStripを継承したクラスの場合、設定されているメニューアイテムの設定は 変更できないのでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
こちらが参考になるかも …
- redfox63
- ベストアンサー率71% (1325/1856)
ん~ 簡単にはいかないと思いますよ UserControl内に配置したメニューを フォームデザイナ側で編集したいとなると UserControlクラスに カスタムデザイナを実装しなければいけないようです MSDNのチュートリアル 「Visual Studio のデザイン時機能を活用した Windows フォーム コントロールの作成 」 を参考にして見ましょう
- redfox63
- ベストアンサー率71% (1325/1856)
現象の再現できる 最小の手順とコードの提示をしたほうがいいと思います 1) メニュークラスの追加 // MenuStripを継承したクラス // クラスの追加で class.csを追加 // using の Windows.Formsを追加 using System.Windows.Forms; namespace CSTest001 { // [public]と[: MenuStrip]を追加 public class TestMenuStrip : MenuStrip { } } 2) このプロジェクトをビルド 3) デザイナでフォームに貼り付け 4) 追加したTestMenuStrip1のプロパティ Itemsを変更 といった手順だと希望通りの動きのように思えます …
補足
ご回答ありがとうございます。 情報が不足しており申し訳ありません。 自分が想定しているのは以下のような場合です。 using System.Windows.Forms; namespace WindowsFormsApplication1 { class Class1 : UserControl { private MenuStrip menuStrip; public MenuStrip MenuStrip { get { return menuStrip; } set { menuStrip = value; } } private ToolStripLabel toolStripLabel; public ToolStripLabel ToolStripLabel { get { return toolStripLabel; } set { toolStripLabel = value; } } public Class1() { //UserControlにMenuStripを貼り付け //MenuStripにToolStripLabelを貼り付け } } } ユーザーコントロールで複数のコントロールを貼り付けたクラス(自作クラスA)を 自作クラスBのデザイナ側で変更できるかを知りたいのですが、可能でしょうか。 お手数をお掛けいたしますが、宜しくお願いいたします。
お礼
簡単にはいかないのですね。。。 もう少し分かりやすいサイトはありませんか? もしあれば教えて頂けると助かります。