複数の.EXEファイルから構成されているようなシステムで、Windowsフォームを継承して別のWindowsフォームを定義する場合には、継承元のWindowsフォームをクラス・ライブラリとして定義し、そのクラス・ライブラリを使って継承する方法をお勧めする。順を追ってその方法を説明していこう。通常の手順でWindowsフォーム・アプリケーションのプロジェクトを作成する。エクスプローラー]の表示例である。次に、ソリューションにWindowsフォーム・クラス・ライブラリのプロジェクトを追加する。アプリケーション」テンプレートを指定する(図7参照)。ライブラリ」に変更する(図8参照)。図9のようにソリューションにWindowsフォーム・アプリケーションのプロジェクトとクラス・ライブラリのプロジェクトがそろったら、クラス・ライブラリのプロジェクト(図では「WinClassLibrary」)の中にWindowsフォームのクラスを追加して、それら(図9では「Login_Form.vb」と「Main_Form.vb」)に共通的なデザインを定義する。共通的なデザインといっても何も特別な手順は不要で、通常のWindowsフォームと同じようにコントロールを貼り付け、コントロールに対するイベント・プロシージャを定義すればよい。Windowsフォーム・クラス・ライブラリ特有の工夫としては、次の2点を考慮するとよいだろう。今回のサンプルでは、プロパティとしてユーザーIDとパスワードを用意し、データの取得と更新部分をオーバーライド可能にしている。=MessageBox.Show("データを保存してから終了します。=MessageBox.Show("データを保存してから終了します。DesignMode」(VBの場合。DesignMode」)のときのみログイン画面を表示するようにしている点に注目してほしい。この判定が必要なのは、IDEがソリューションを読み込んだときにクラス・ライブラリのFormクラスのLoadedイベントやShownイベントが発生し、IDEで読み込むたびにログイン画面が自動的に表示されてしまうからだ。●Windowsフォーム・クラスの継承Windowsフォーム・アプリケーションのプロジェクトで、先ほどのクラス・ライブラリを参照設定したら、[新しい項目の追加]ダイアログで「継承されたフォーム」テンプレートを選択して、その後に表示される[継承ピッカー]ダイアログで[参照]ボタンから、(継承元となる)Windowsフォーム(本稿の例では「Main_Form」)を指定する。Windowsフォーム・アプリケーション側では、ここまでまったくコードを記述していない。この状態で、Windowsフォーム・アプリケーションのプロジェクトをスタートアップ・プロジェクトに指定して実行すれば、Windowsフォームが表示されてから、自動的にログイン画面が表示される。サンプルの実行結果このようにログイン画面まで基本クラスで定義することで、複数の.EXEファイルに分割して業務システムを構築したときでも、各.EXEファイルのメイン画面に同じ操作性のログイン画面の実装が簡単に行える。メイン画面以外ではログイン画面は不要なのでメイン画面以外のひな型フォームも別の基本クラスとしてクラス・ライブラリに定義しておくとよいだろう。■まとめ業務アプリケーションを構築するときにUIデザインの統一は非常に重要だ。.NET以前の手法であれば、共通デザインを行ったWindowsフォームを「ひな型フォーム」として最初に作成し、後はそのWindowsフォームをコピーしてから各機能に応じた画面を作成する手法が主流であった。この方法では、後から「ひな型フォーム」に変更が生じた場合に、コピーして作成したWindowsフォームへその変更を反映するのに非常に手間がかかってしまう。そのため「ひな型フォーム」の作成には十分な検討が必要になり、「後戻りして直す」という作業自体を前提としないウォータフォール的な手法が必要になる。「ひな型フォームのクラス・ライブラリ」でデザインの統一を実現すれば、後から共通部分に変更がかかってもクラス・ライブラリ側の変更のみで、各Windowsフォームへはその変更が自動的に継承されることになる。このように後からの変更が容易であれば、徐々に作りながら「ひな型フォーム」の仕様を詰めていきやすい。自分たちの「ひな型フォームのクラス・ライブラリ」を作成して作業の効率化を図ってみてほしい。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。