クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2005
Visual Studio ドキュメント
Visual J#
チュートリアル
 Visual J# での Windows フォーム コントロールの継承

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2005/.NET Framework 2.0

その他のバージョンについては、以下の情報を参照してください。
Visual J# Concepts
チュートリアル : Visual J# での Windows フォーム コントロールの継承

Visual J# には、継承を使って強力なカスタム コントロールを作成する機能が用意されています。継承を使用すると、標準の Windows フォーム コントロールの固有の機能をすべて保持しながら、カスタム機能も組み込んだコントロールを作成できます。このチュートリアルでは、ValueButton という名前の簡単な継承コントロールを作成します。このボタンは、標準 Windows フォーム ボタンの機能を継承し、ButtonValue という名前のカスタム メンバを公開します。

Noteメモ :

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

新しいプロジェクトを作成するときは、名前を指定することによって、ルート パッケージ、アセンブリ名、およびプロジェクト名が設定され、既定のコンポーネントが適切なパッケージに含まれるようになります。

ValueButtonLib コントロール ライブラリおよび ValueButton コントロールを作成するには

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

  2. [Visual J# プロジェクト] ボックスの一覧の [Windows コントロール ライブラリ] プロジェクト テンプレートをクリックし、[プロジェクト名] ボックスに「ValueButtonLib」と入力します。

  3. [OK] をクリックします。

    既定では、プロジェクト名の ValueButtonLib がルート パッケージにも割り当てられます。ルート パッケージは、アセンブリ内のコンポーネントの名前を限定するために使用されます。たとえば、ValueButton という名前のコンポーネントが 2 つのアセンブリに含まれる場合は、ValueButtonLib.ValueButton という形で ValueButton を指定します。

  4. ソリューション エクスプローラで、UserControl1.jsl を右クリックし、ショートカット メニューの [名前の変更] をクリックします。ファイル名を ValueButton.jsl に変更します。

  5. ソリューション エクスプローラで [ValueButton.jsl] を右クリックし、[コードの表示] をクリックします。

  6. class ステートメント、public class ValueButton を検索し、このコントロールが継承した型を System.Windows.Forms.UserControl から System.Windows.Forms.Button に変更します。これにより、継承したコントロールは、Button コントロールのすべての機能を継承できます。

  7. [コンポーネント デザイナで生成されたコード] を展開し、InitializeComponent メソッドを検索し、AutoScaleMode プロパティを割り当てた行を削除します。

    this.set_AutoScaleMode(System.Windows.Forms.AutoScaleMode.Font);

    このプロパティは、Button コントロール内には存在しません。

  8. [ファイル] メニューの [すべてを保存] をクリックして、プロジェクトを保存します。

    ビジュアル デザイナが使用できなくなります。Button コントロールは独自の描画を実行するため、デザイナでは表示を変更できません。ビジュアル表示は、コードで変更しない限り、継承元のクラス (Button) とまったく同じです。

    Noteメモ :

    UI 要素のないコンポーネントをデザイン サーフェイスに追加することはできます。

継承された Windows フォーム コントロールの使用方法の 1 つとして考えられるのは、標準 Windows フォーム コントロールと同じコントロールを作成して、カスタム プロパティを公開することです。このセクションでは、コントロールに ButtonValue という名前のメンバを追加します。

ButtonValue メンバを追加するには

  1. ソリューション エクスプローラで ValueButton.jsl を右クリックし、ショートカット メニューの [コードの表示] をクリックします。

  2. class ステートメントを探します。始まりの中かっこ ({) の直後に、次のコードを追加します。

    // Visual J#
    // Creates the private variable that will store the value of your 
    // member.
    private int varValue;
    // Declares the methods to access or modify the member.
    /** @property */
    public int get_ButtonValue()
    {
        return varValue;
    }
    /** @property */
    public void set_ButtonValue(int value)
    {
        varValue = value;
    }

    このコードは、ButtonValue メンバを格納および取得するメソッドを設定します。get_ ステートメントは、返された値をプライベート変数 varValue に格納されている値に設定します。set_ ステートメントは、value キーワードを使用してプライベート変数の値を設定します。

  3. [ファイル] メニューの [すべてを保存] をクリックして、プロジェクトを保存します。

コントロールはスタンドアロン プロジェクトではないため、コンテナでホストする必要があります。コントロールをテストするには、コントロールを実行するテスト プロジェクトを指定する必要があります。また、コントロールをビルドしてテスト プロジェクトからもアクセスできるようにする必要があります。ここでは、コントロールを作成し、Windows フォームでそのコントロールをテストします。

コントロールをビルドするには

  • [ビルド] メニューの [ソリューションのビルド] をクリックします。

テスト プロジェクトを作成するには

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

  2. [Visual J# プロジェクト] ノードを選択し、[Windows アプリケーション] をクリックします。

  3. [プロジェクト名] ボックスに「Test」と入力し、[OK] をクリックします。

  4. ソリューション エクスプローラで、テスト プロジェクトの [参照設定] ノードを右クリックし、ショートカット メニューの [参照の追加] をクリックして [参照の追加] ダイアログ ボックスを表示します。

  5. [プロジェクト] タブをクリックします。

  6. ValueButtonLib プロジェクトをダブルクリックして、テスト プロジェクトに参照を追加します。

フォームにコントロールを追加するには

  1. ソリューション エクスプローラで Form1.jsl を右クリックし、ショートカット メニューの [デザイナの表示] をクリックします。

  2. ツールボックスで、[ValueButton] アイコンをダブルクリックします。

    ValueButton のインスタンスがフォームに表示されます。

  3. ValueButton を右クリックし、ショートカット メニューの [プロパティ] をクリックします。

    このコントロールのプロパティは [プロパティ] ウィンドウで確認できます。これらのプロパティは、標準ボタンにより公開されるプロパティと同じです。

  4. ButtonValue プロパティを 5 に設定します。

  5. ツールボックスの [コモン コントロール] タブで、[Label] をダブルクリックしてフォームに Label コントロールを追加します。

  6. ラベルをフォームの中央に移動します。

  7. [valueButton1] をダブルクリックします。

    コード エディタが開き、valueButton1_Click イベントが表示されます。

  8. 次のコード行を追加します。

    // Visual J#
    label1.set_Text("" + valueButton1.get_ButtonValue());
  9. ソリューション エクスプローラで Test を右クリックし、ショートカット メニューの [スタートアップ プロジェクトに設定] をクリックします。

  10. [デバッグ] メニューの [デバッグ開始] をクリックします。

    Form1 が表示されます。

  11. [valueButton1] をクリックします。

    Label1 に数字 "5" が表示されます。これにより、valueButton1_Click メソッドによって継承コントロールの ButtonValue メンバが Label1 に渡されたことが証明されます。これで、作成した ValueButton コントロールが標準 Windows フォーム ボタンのすべての機能を継承し、それに加えてカスタム メンバを公開することがわかります。

コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker