質問: お世話になります。 表題の通りなのですがVIsualStudioCommunity2019でいわゆるフォームそのものを継承したDLLの作成方法などございましたら教えていただけますでしょうか? ウィンドウズフォームアプリケーションを作る時に自分の中ではよく使うインターフェース(自作フォーム)などの再利用する際に過去に作成したプロジェクトを開いてコードを読み返しながら手動でフォームを追加してボタンなどを配置、イベントに紐づいたコードをコピペしたりしています。 アプリケーション作成を繰り返しているとどうにも面倒臭く効率が悪い気がしています。 そこでWindowsフォーム単体をDLLにしてプロジェクト参照に追加しておいてプログラムで呼び出せればと思いVisualStudioを色々と弄っております。 例えば ``` Dim frm As New Form1 frm.show ``` のForm1の部分をDLLでやりたい訳です。 (DLLなので実際の呼び出しはリフレクションを使うのかもしれませんが...) その為にはDLLを作成しなければならないのですが新規プロジェクト作成の所で「クラスライブラリ(.NetFramework)を選択して ``` Public Class Class1 Inherits System.Windows.Forms.Form End Class ``` ...としてみると継承の部分(System.Windows.Forms.Form)で「そんな型は定義されていない」とエラーが出てしまいます。 継承のコードを作成して保存したらソリューションエクスプローラーからClass1に対してビジュアルデザイナが起動できるかもと思いつつやってみたのですがサクッと躓いてしまいました。 開発の方法としてそんな方法は頓珍漢だとか言う観点もあるかとは思いますがとりあえずこういう事が出来るかどうか知りたく思います。 ご存じの方おられましたらお助け下さい。 よろしくお願いします。 --- KoichiSugiyamaさん、KOZ6.0さん、SurferOnWwwさん、回答ありがとうございました。 以下自分用のメモがてら手順を記します。 1新規プロジェクト作成(DLLプロジェクト) 2自動生成されたClass1のファイルを削除 3プロジェクトにフォームを追加 4プロジェクトをコンパイルするとDLLが作成される 5呼び出し元のプロジェクトから ``` Dim frm as New rootNameSpace.className frm.show ``` ...で出来ました。
回答: DLL 作成時、クラスライブラリ(.NET Framework) を選択してプロジェクトのひな型を作ったら、System.Windows.Forms を参照設定に追加してください。 「アセンブリのプロジェクトへの追加」 もしくは、Windows フォームアプリケーションのプロジェクトを作成した後、クラスライブラリに変更してください。 「独自Windowsフォーム・クラスの活用」