英語で読む

次の方法で共有


ウォークスルー: ビジュアル継承の実演

ビジュアル継承を使用すると、基本フォーム上のコントロールを表示したり、新しいコントロールを追加することができます。 このチュートリアルでは、基本フォームを作成し、それをクラス ライブラリにコンパイルします。 このクラス ライブラリを別のプロジェクトにインポートし、基本フォームから継承する新しいフォームを作成します。 このチュートリアルでは、次の方法について説明します。

  • 基本フォームを含むクラス ライブラリ プロジェクトを作成します。

  • 基本フォームの派生クラスが変更できるプロパティを含むボタンを追加します。

  • 基本フォームの継承者が変更できないボタンを追加します。

  • BaseFormから継承するフォームを含むプロジェクトを作成します。

最終的に、このチュートリアルでは、継承されたフォーム上のプライベート コントロールと保護されたコントロールの違いを示します。

注意事項

すべてのコントロールが基本フォームからの視覚的継承をサポートしているわけではありません。 次のコントロールは、このチュートリアルで説明するシナリオをサポートしていません。

継承された形式のこれらのコントロールは、使用する修飾子 (privateprotected、または public) に関係なく、常に読み取り専用です。

基本フォームを含むクラス ライブラリ プロジェクトを作成する

  1. Visual Studio の [ファイル] メニューの [新しいプロジェクト] 選択して、[新しいプロジェクト の ] ダイアログ ボックスを開きます。

  2. BaseFormLibraryという名前の Windows フォーム アプリケーションを作成します。

  3. 標準の Windows フォーム アプリケーションの代わりにクラス ライブラリを作成するには、ソリューション エクスプローラーで、BaseFormLibrary プロジェクト ノードを右クリックし、[プロパティ]選択します。

  4. プロジェクトのプロパティで、出力の種類の Windows アプリケーション からクラス ライブラリ変更します。

  5. [ファイル] メニューの [すべての を保存 選択して、プロジェクトとファイルを既定の場所に保存します。

次の 2 つの手順では、基本フォームにボタンを追加します。 視覚的な継承を示すために、ボタンの Modifiers プロパティを設定することで、ボタンにさまざまなアクセス レベルを与えます。

基本フォームの継承者が変更できるボタンを追加する

  1. デザイナー Form1 を開きます。

  2. ツールボックスの [すべての Windows フォーム ] タブで、[ボタン] をダブルクリックして、フォームにボタンを追加します。 マウスを使用してボタンの位置とサイズを変更します。

  3. [プロパティ] ウィンドウで、ボタンの次のプロパティを設定します。

    • Text のプロパティを Say Helloに設定します。

    • (Name) プロパティを btnProtectedに設定します。

    • 修飾子 プロパティを Protectedに設定します。 これにより、Form1 から継承したフォームで、btnProtectedのプロパティ 変更できるようになります。

  4. [Say Hello] ボタン ダブルクリックして、Click イベントのイベント ハンドラーを追加します。

  5. イベント ハンドラーに次のコード行を追加します。

    MessageBox.Show("Hello, World!");
    

基本フォームの継承者が変更できないボタンを追加する

  1. コード エディターの上にある Form1.vb [デザイン]、Form1.cs [デザイン]、または Form1.jsl [デザイン] タブをクリックするか、F7 キーを押してデザイン ビューに切り替えます。

  2. 2 つ目のボタンを追加し、そのプロパティを次のように設定します。

    • Text プロパティを に "Say Goodbye" を設定します。

    • (Name) プロパティを btnPrivateに設定します。

    • 修飾子 プロパティを プライベートとして設定します。 これにより、Form1 から継承したフォームで btnPrivateのプロパティ 変更できなくなります。

  3. Say Goodbye ボタンをダブルクリックして、「クリック」イベントのイベントハンドラーを追加します。 イベント プロシージャに次のコード行を配置します。

    MessageBox.Show("Goodbye!");
    
  4. [Build]\(ビルド\) メニュー [Build BaseForm Library]\(基本フォーム ライブラリのビルド\) を選択してクラス ライブラリをビルドします。

    ライブラリがビルドされたら、先ほど作成したフォームから継承する新しいプロジェクトを作成できます。

基本フォームから継承するフォームを含むプロジェクトを作成する

  1. [ファイル] メニューから [追加] を選択し、[新しいプロジェクト] を選択して、[新しいプロジェクトの追加] ダイアログ ボックスを開きます。

  2. InheritanceTestという名前の Windows フォーム アプリケーションを作成します。

継承されたフォームを追加する

  1. ソリューション エクスプローラーで、InheritanceTest プロジェクトを右クリックし、[の追加] 選択し、[新しい項目]選択します。

  2. [新しい項目の追加] ダイアログ ボックスで、(カテゴリの一覧がある場合) Windows フォーム カテゴリを選択し、継承フォーム テンプレートを選択します。

  3. Form2 の既定の名前のままにし、の追加」をクリックしてください。

  4. [継承ピッカー] ダイアログ ボックスで、継承元のフォームとして BaseFormLibrary プロジェクトから Form1 を選択し、[OK] クリック

    これにより、InheritanceTest プロジェクトに、BaseFormLibraryのフォームから派生するフォームが作成されます。

  5. デザイナーで継承されたフォーム (Form2) をダブルクリックして開きます (まだ開いていない場合)。

    デザイナーでは、継承されたボタンの上隅にシンボル (Visual Basic 継承シンボルのスクリーンショットスクリーンショット。) があり、継承されていることを示します。

  6. 「Say Hello」 ボタンを選択し、サイズ変更ハンドルを確認します。 このボタンは保護されているため、継承者はそれを移動したり、サイズを変更したり、キャプションを変更したり、その他の変更を行うことができます。

  7. プライベート [Say Goodbye] ボタンを選択し、サイズ変更ハンドルがないことを確認します。 また、[プロパティ] ウィンドウでは、このボタンのプロパティが灰色表示され、変更できないことが示されます。

  8. Visual C# を使用している場合:

    1. ソリューション エクスプローラーで、InheritanceTest プロジェクトの Form1 を右クリックし、[削除]を選択します。 表示されたメッセージ ボックスで、[OK] クリックして削除を確定します。

    2. Program.cs ファイルを開き、行 Application.Run(new Form1());Application.Run(new Form2());に変更します。

  9. ソリューション エクスプローラーで、InheritanceTest プロジェクトを右クリックし、[スタートアップ プロジェクトとして設定] 選択します。

  10. ソリューション エクスプローラーで、InheritanceTest プロジェクトを右クリックし、[プロパティ]選択します。

  11. InheritanceTest プロパティ ページで、Startup オブジェクト を継承フォーム (Form2) に設定します。

  12. F5 押してアプリケーションを実行し、継承されたフォームの動作を確認します。

次の手順

ユーザー コントロールの継承は、ほとんど同じように機能します。 新しいクラス ライブラリ プロジェクトを開き、ユーザー コントロールを追加します。 構成コントロールを配置し、プロジェクトをコンパイルします。 別の新しいクラス ライブラリ プロジェクトを開き、コンパイル済みのクラス ライブラリへの参照を追加します。 また、([新しい項目の追加] ダイアログ ボックスを使用して) 継承されたコントロールをプロジェクトに追加し、継承ピッカーを使用してみてください。 ユーザー コントロールを追加し、Inherits (Visual C# の:) ステートメントを変更します。 詳細については、「方法: Windows フォームを継承する」を参照してください。

関連項目