印刷用ページ       送信     
クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio .NET
製品ドキュメント
Visual J#
Visual J# のチュートリアル
 チュートリアル : Visual J# での Windows フォーム...

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

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

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

プロジェクトの作成

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

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

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックして [新しいプロジェクト] ダイアログ ボックスを表示します。
  2. [Visual J# プロジェクト] ボックスの一覧の [Windows コントロール ライブラリ] プロジェクト テンプレートをクリックし、[プロジェクト名] ボックスに「ValueButtonLib」と入力します。

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

  3. ソリューション エクスプローラで UserControl1.jsl を右クリックし、[コードの表示] をクリックします。
  4. class ステートメント public class UserControl1 を探し、UserControl1ValueButton に変更してコンポーネント名を変更します。
  5. コンストラクタ public UserControl1() を探し、public ValueButton() に変更します。
  6. class ステートメントで、このコントロールの継承元の型を System.Windows.Forms.UserControl から System.Windows.Forms.Button に変更します。これにより、継承コントロールは Button コントロールのすべての機能を継承できます。
  7. ソリューション エクスプローラで UserControl1.jsl をクリックし、[プロパティ] ウィンドウで、"ファイル名" プロパティを「ValueButton.jsl」に変更します。
  8. [ファイル] メニューの [すべてを保存] をクリックしてプロジェクトを保存します。

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

継承コントロールへのメンバの追加

継承された 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」と入力します。
  4. ソリューション エクスプローラで、テスト プロジェクトの [参照設定] ノードを右クリックし、ショートカット メニューの [参照の追加] をクリックして [参照の追加] ダイアログ ボックスを表示します。
  5. [プロジェクト] タブをクリックします。
  6. [ValueButtonLib] プロジェクトをダブルクリックします。プロジェクトが [選択されたコンポーネント] ペインに表示されます。

    参照を追加した後、ツールボックスに新しいコントロールを追加します。ツールボックスにコントロールが既に表示されている場合は、次のセクションの手順を省略してください。

  7. ソリューション エクスプローラで [Test] を右クリックし、ショートカット メニューの [スタートアップ プロジェクトに設定] をクリックします。

コントロールをツールボックスに追加するには

  1. ツールボックスを右クリックし、ショートカット メニューの [アイテムの追加と削除] をクリックします。

    [ツールボックスのカスタマイズ] ダイアログ ボックスが表示されます。

  2. [.NET Framework コンポーネント] タブをクリックし、[参照] をクリックします。ValueButtonLib\bin\debug フォルダを参照し、ValueButtonLib.dll を選択します。

    [ツールボックスのカスタマイズ] ダイアログ ボックスのコンポーネント一覧に [ValueButton] が表示されます。

  3. [ツールボックスのカスタマイズ] ダイアログ ボックスで、[ValueButton] の横のボックスをオンにして、ウィンドウを閉じます。

    選択したツールボックスのタブに ValueButton が追加されます。

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

  1. ソリューション エクスプローラで Form1.jsl を右クリックし、ショートカット メニューの [デザイナの表示] をクリックします。
  2. ツールボックスで、[ValueButton] と示されたアイコンに到達するまで下方にスクロールします。このアイコンをダブルクリックします。

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

  3. [ValueButton] を右クリックし、ショートカット メニューの [プロパティ] をクリックします。
  4. [プロパティ] ウィンドウで、このコントロールのプロパティを調べます。これらのプロパティは、標準ボタンにより公開されるプロパティと同じです。
  5. InitializeComponent の呼び出しの後、public Form1 コンストラクタに次のコードを追加して、ButtonValue メンバを 5 に設定します。
    // Visual J#
    valueButton1.set_ButtonValue(5);    // Sets ButtonValue member of inherited button to 5.
  6. ツールボックスの [Windows フォーム] タブで、[Label] をダブルクリックしてフォームに Label コントロールを追加します。
  7. ラベルをフォームの中央に配置し直します。
  8. [valueButton1] をダブルクリックします。

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

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

    Form1 が表示されます。

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

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

参照

コンポーネントによるプログラミング | チュートリアル : Visual J# でのユーザー コントロールの作成 | コンポーネントおよびコントロール作成のチュートリアル

© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker