チュートリアル : ビジュアル継承のデモンストレーション
ビジュアル継承を使用すると、基本フォームのコントロールを表示して、新しいコントロールを追加できます。このチュートリアルでは、基本フォームを作成してクラス ライブラリにコンパイルします。このクラス ライブラリを別のプロジェクトにインポートし、基本フォームを継承する新しいフォームを作成します。このチュートリアルでは、次の作業を行う方法について説明します。
基本フォームを含むクラス ライブラリ プロジェクトを作成します。
基本フォームの派生クラスで変更できるプロパティを持つボタンを追加します。
基本フォームの継承先では変更できないボタンを追加します。
BaseForm を継承するフォームを含むプロジェクトを作成します。
チュートリアルの最後では、継承したフォーム上のプライベート コントロールとプロテクト コントロールの相違を示します。
![]() |
---|
使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。 |
シナリオの手順
最初に基本フォームを作成します。
基本フォームを含むクラス ライブラリ プロジェクトを作成するには
[ファイル] メニューの [新規作成] をクリックし、[プロジェクト] をクリックして [新しいプロジェクト] ダイアログ ボックスを開きます。
BaseFormLibrary という名前の Windows ベースのアプリケーションを作成します。詳細については、「方法 : Windows アプリケーション プロジェクトを作成する」を参照してください。
標準の Windows ベースのアプリケーションではなくクラス ライブラリを作成するには、ソリューション エクスプローラの [BaseFormLibrary] プロジェクト ノードを右クリックし、[プロパティ] をクリックします。
プロジェクトのプロパティで、出力の種類を [Windows アプリケーション] から [クラス ライブラリ] に変更し、[OK] をクリックします。
[ファイル] メニューの [すべてを保存] をクリックして、プロジェクトおよびファイルを既定の場所に保存します。
基本フォームにボタンを追加する 2 つの手順を次に示します。ビジュアル継承をデモンストレーションするために、Modifiers プロパティを設定して、ボタンごとに異なるアクセス レベルを指定します。
基本フォームの継承先で変更できるボタンを追加するには
ツールボックスの [Windows フォーム] タブの [Button] をダブルクリックしてフォームにボタンを追加します。マウスを使用してボタンの位置とサイズを調整します。
[プロパティ] ウィンドウで、ボタンの次のプロパティを設定します。
Text プロパティを Say Hello に設定します。
(Name) プロパティを btnProtected に設定します。
Modifiers プロパティを Protected に設定します。これにより、Form1 を継承するフォームで、btnProtected のプロパティを変更できます。
[Say Hello] をダブルクリックして、Click イベントに対するイベント ハンドラを追加します。
イベント ハンドラに次のコード行を追加します。
MessageBox.Show("Hello, World!")
MessageBox.Show("Hello, World!");
MessageBox.Show("Hello, World!");
基本フォームの継承先では変更できないボタンを追加するには
コード エディタの上部の [Form1.vb [デザイン]]、[Form1.cs [デザイン]]、または [Form1.jsl [デザイン]] タブをクリックするか、または Shift キーを押しながら F7 キーを押して、デザイン ビューに切り替えます。
2 番目のボタンを追加して、プロパティを次のように設定します。
Text プロパティを Say Goodbye に設定します。
(Name) プロパティを btnPrivate に設定します。
Modifiers プロパティを Private に設定します。これにより、Form1 を継承するフォームで、btnPrivate のプロパティを変更できなくなります。
[Say Goodbye] をダブルクリックして、Click イベントに対するイベント ハンドラを追加します。イベント プロシージャに次のコード行を追加します。
MessageBox.Show ("Goodbye!")
MessageBox.Show ("Goodbye!");
MessageBox.Show ("Goodbye!");
[ビルド] メニューの [BaseFormLibrary のビルド] をクリックして、クラス ライブラリを作成します。
ライブラリの作成後は、作成したフォームを継承する新しいプロジェクトを作成できます。
基本フォームを継承するフォームを含むプロジェクトを作成するには
[ファイル] メニューの [プロジェクトの追加] をポイントし、[新しいプロジェクト] をクリックして [新しいプロジェクト] ダイアログ ボックスを開きます。
InheritanceTest という名前の Windows ベースのアプリケーションを作成します。詳細については、「方法 : Windows アプリケーション プロジェクトを作成する」を参照してください。
継承したフォームを追加するには
InheritanceTest プロジェクトを右クリックし、[追加]、[継承フォームの追加] の順にクリックします。
[新しい項目の追加] ダイアログ ボックスで [継承されたフォーム] が選択されていることを確認し、[開く] をクリックします。
[継承ピッカー] ダイアログ ボックスで、継承元のフォームとして BaseFormLibrary プロジェクトの [Form1] を選択し、[OK] をクリックします。
これにより、BaseFormLibrary のフォームから派生したフォームが InheritanceTest プロジェクトに作成されます。
継承されたフォームがまだ開かれていない場合は、フォームをダブルクリックして Windows フォーム デザイナで開きます。
Windows フォーム デザイナでは、継承したボタンの上隅にシンボル () が表示され、継承したボタンであることが示されます。
[Say Hello] をクリックし、サイズ変更ハンドルを確認します。このボタンはプロテクトされているため、継承先で、移動、サイズ変更、キャプション変更などの変更を行うことができます。
プライベートの [Say Goodbye] をクリックすると、サイズ変更ハンドルが存在しないことがわかります。さらに、[プロパティ] ウィンドウのボタンのプロパティが淡色表示され、変更できないことが示されます。最後に、ボタンの上にマウス ポインタを移動すると、ツール ヒントが表示されてコントロールの継承方法が示されます。
Visual C# を使用している場合は、次の操作を行います。
InheritanceTest プロジェクトの [Form1] を右クリックし、ショートカット メニューの [削除] をクリックします。
Form2 の
protected override void Dispose( bool disposing )
という行の直前に、次のコードを追加します。この追加により、Form2 がスタートアップ オブジェクトとして機能するようになります。static void Main () { Application.Run (new Form2()); }
または
Visual J# を使用している場合は F7 キーを押してコード ビューに切り替えます。継承されたフォーム (Form2) に次のメソッドを追加します。これは、InheritanceTest アプリケーションのエントリ ポイントです。
// The main entry point for the application. /** @attribute System.STAThreadAttribute() */ public static void main(String[] args) { Application.Run(new Form2()); }
ソリューション エクスプローラの InheritanceTest プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。
ソリューション エクスプローラの InheritanceTest プロジェクトを右クリックし、[プロパティ] をクリックします。[InheritanceTest プロパティ ページ] ダイアログ ボックスで、[スタートアップ オブジェクト] を継承したフォームとして設定します。通常は Form2 になります。
F5 キーを押してアプリケーションを実行し、継承されたフォームの動作を確認します。
次の手順
ユーザー コントロールの継承も、ほぼ同じ方法で実行できます。新しいクラス ライブラリ プロジェクトを開き、ユーザー コントロールを追加します。内在コントロールを配置し、プロジェクトをコンパイルします。別の新しいクラス ライブラリ プロジェクトを開き、コンパイル済みのクラス ライブラリへの参照を追加します。また、継承されたコントロールを [新しい項目の追加] ダイアログ ボックスを使ってプロジェクトに追加したり、継承ピッカーを使ったりします。ユーザー コントロールを追加し、Inherits (Visual C# の場合は :) ステートメントを変更します。詳細については、「方法 : Windows フォームを継承する」を参照してください。
参照
処理手順
関連項目
[継承ピッカー] ダイアログ ボックス
Windows フォームのチュートリアルおよび方法のトピック