質問: ### 前提・実現したいこと フォームを継承するにはどういった手順を踏めばよいのでしょうか? また、フォームを継承し終わった後に、継承元フォームで変更を行ったら、派生フォームで更新されませんか? さらにフォームを継承して派生フォームで、コントロールを追加することはできないのでしょうか? ご教示お願いします。 ### 試したこと ・質問1。 継承したいフォームをtestFormとすると、下記のようにクラス宣言の箇所で、testFormを指定したのですが、 デザインが壊れたようなエラーになりました。 クラス宣言の箇所を書き換えるだけでは、継承はできないのでしょうか? また、プロジェクト → 新しい項目の追加 → Windows Forms → 継承フォームを選ぶと、新規フォームの作成と同時に、 継承元フォームを選ぶことで、フォームの継承ができたのですが、この方法でしかフォームの継承はできないのでしょうか? これを選ぶことによって、クラス宣言の箇所以外にも、継承においてどこのコードが書き換わっていますか? ``` public partial class Form1 : testForm ``` ・質問2。 質問1の新しい項目の追加 → Windows Forms → 継承フォームを選ぶやり方でフォームを継承して、 その後に、継承元のフォーム(基底フォーム(testForm))のデザインを変更したら、派生フォームでその変更が更新されなかったのですが、 フォームを継承した後に、継承元のフォームを変更してそれを更新させる方法はないですか? ・質問3。 質問1の新しい項目の追加 → Windows Forms → 継承フォームを選ぶやり方でフォームを継承して、 派生フォームでコントロールを追加しようとしたら、コントロールのロックがかかった表示のままで、 コントロールの追加ができなかったのですが、派生フォームでコントロールを追加することはできませんか? 継承元フォームのコントロールも使用しつつ、それ以外にも派生フォーム独自にコントロールを追加することはできないのでしょうか? ### 補足情報(FW/ツールのバージョンなど) Visual Studio 2019, Visaul C#
回答: 質問1の回答 書き方から察するに、新しいプロジェクトを作成され 1.testFormを作成 2.Form1の継承部分をtestFormに変更 3.Form1をデザイナーで表示 という手順で行われたのだと思います。 この場合、3の前に一度ビルドしておく必要があります。 また、プロジェクト → 新しい項目の追加 → Windows Forms → 継承フォームの場合でもビルドを行う前にこの操作を行った場合に継承元として表示されません。 質問2の回答 基底フォームのほうを変更した場合、一度ビルドしてから再表示してやれば 基底フォームの変更が反映された形で表示されます。 質問3の回答 普通にコントロールを追加することができます。