次の方法で共有


チュートリアル : ビジュアル継承のデモンストレーション

更新 : 2008 年 7 月

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

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

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

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

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

チュートリアルの最後では、継承したフォーム上のプライベート コントロールとプロテクト コントロールの相違を示します。

1z3efhd2.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

シナリオの手順

最初に基本フォームを作成します。

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

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

  2. BaseFormLibrary という名前の Windows フォーム アプリケーションを作成します。詳細については、「方法 : Windows アプリケーション プロジェクトを作成する」を参照してください。

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

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

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

基本フォームにボタンを追加する 2 つの手順を次に示します。ビジュアル継承をデモンストレーションするために、Modifiers プロパティを設定して、ボタンごとに異なるアクセス レベルを指定します。

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

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

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

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

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

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

    • Modifiers プロパティを Protected に設定します。これにより、Form1 を継承するフォームで、btnProtected のプロパティを変更できます。

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

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

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

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

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

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

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

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

    • Modifiers プロパティを Private に設定します。これにより、Form1 を継承するフォームで、btnPrivate のプロパティを変更できなくなります。

  3. [Say Goodbye] をダブルクリックして、Click イベントに対するイベント ハンドラを追加します。イベント プロシージャに次のコード行を追加します。

    MessageBox.Show("Goodbye!")
    
    MessageBox.Show("Goodbye!");
    
    MessageBox.Show("Goodbye!");
    
  4. [ビルド] メニューの [BaseFormLibrary のビルド] をクリックして、クラス ライブラリを作成します。

    ライブラリの作成後は、作成したフォームを継承する新しいプロジェクトを作成できます。

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

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

  2. InheritanceTest という名前の Windows フォーム アプリケーションを作成します。詳細については、「方法 : Windows アプリケーション プロジェクトを作成する」を参照してください。

継承したフォームを追加するには

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

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

  3. 名前を既定の Form2 のままにして、[追加] をクリックします。

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

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

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

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

  6. [Say Hello] をクリックし、サイズ変更ハンドルを確認します。このボタンはプロテクトされているため、継承先で、移動、サイズ変更、キャプション変更などの変更を行うことができます。

  7. プライベートの [Say Goodbye] をクリックすると、サイズ変更ハンドルが存在しないことがわかります。さらに、[プロパティ] ウィンドウのボタンのプロパティが淡色表示され、変更できないことが示されます。

  8. Visual C# を使用している場合は、次の手順を実行します。

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

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

    3. コード ビューで Form2 を開きます。

    4. public Form2() という行の直前に、次のメソッドを追加します。この追加により、Form2 がスタートアップ オブジェクトとして機能するようになります。

      static void Main()
      {
         Application.Run(new Form2());
      }
      

    または

    Visual J# を使用している場合は、次の手順を実行します。 

    1. コード ビューで Form2 を開きます。

    2. 次のメソッドを追加します。これは、InheritanceTest アプリケーションのエントリ ポイントです。

      // The main entry point for the application.
      /** @attribute System.STAThreadAttribute() */
      public static void main(String[] args) 
      {
         Application.Run(new Form2());
      }
      
  9. ソリューション エクスプローラで、InheritanceTest プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。

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

  11. InheritanceTest のプロパティ ページで、[スタートアップ オブジェクト] に継承したフォーム (Form2) を設定します。

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

次の手順

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

参照

処理手順

方法 : Windows フォームを継承する

参照

[継承ピッカー] ダイアログ ボックス

Windows フォームのチュートリアルおよび方法のトピック

その他の技術情報

Windows フォームのビジュアルの継承

Windows フォーム

履歴の変更

日付

履歴

理由

2008 年 7 月

Visual Studio 2005 および Visual Studio 2008 用に手順を更新

カスタマ フィードバック