詳細 : 名前付き値を持つプロパティの追加
更新 : 2007 年 11 月
このレッスンでは、値のリストを含むプロパティをユーザー コントロールに追加する方法を学習します。
名前付き値
これまでにユーザー コントロールに追加したプロパティは、いずれも文字列値を受け取るものでしたが、プロパティにはさまざまな種類があります。以前のレッスンで設定した PictureBox コントロールの SizeMode プロパティのように、事前設定した値のリストを用意して選択を可能にすることもできます。
たとえば、FullName ラベルでの名前の表示方法を選択できるプロパティを NamesControl に作成するとします。選択する値のリスト (first name first、last name first、first and last name only など) が必要です。
Visual Basic では、必要な値を含んだ列挙型を作成できます。"列挙型" は、"番号付きリスト" を格好良く表現した用語です。番号は Visual Basic によって自動的に格納されるので、値を名前で参照することができます。次の例に示すように、列挙型は Enum キーワードを使用して宣言します。
Public Enum Display
FirstMiddleLast
FirstLast
LastFirstMiddle
LastFirst
End Enum
作成した列挙型は、他のデータ型と同じように使用できます。値のリストを表示するプロパティを追加するには、まず Enum と同じデータ型の変数を宣言し、次に同じデータ型のプロパティを宣言します。デザイン時には、列挙体に含まれている値のリストが [プロパティ] ウィンドウに表示されます。
やってみよう
値のリストを表示するプロパティを追加するには
前のレッスンで作成した NamesUserControl プロジェクトを開きます。プロジェクトを保存していない場合は、まず前のレッスンの「ユーザー コントロールへのコードの追加」に戻り、そのレッスンの手順を完了する必要があります。
ソリューション エクスプローラの NamesControl.vb をクリックし、[表示] メニューの [コード] をクリックします。
コード エディタで、列挙を作成する次のコードをクラスに追加します。
Public Enum Display FirstMiddleLast FirstLast LastFirstMiddle LastFirst End Enum
次のコードを追加することにより、新しいプロパティを追加します。
Private DisplayStyleList As Display Property DisplayStyle() As Display Get Return DisplayStyleList End Get Set(ByVal value As Display) DisplayStyleList = value End Set End Property
FirstName_TextChanged イベント ハンドラ内で既存のコードを削除し、それを次のコードに置換します。
Select Case DisplayStyleList Case Display.FirstLast FullName.Text = FirstName.Text & " " & LastName.Text Case Display.FirstMiddleLast FullName.Text = FirstName.Text & " " & MiddleName.Text & " " & LastName.Text Case Display.LastFirst FullName.Text = LastName.Text & ", " & FirstName.Text Case Display.LastFirstMiddle FullName.Text = LastName.Text & ", " & FirstName.Text & " " & MiddleName.Text End Select
F5 キーを押してプログラムを実行します。3 つのテキスト ボックスに、ファースト ネーム、ラスト ネーム、およびミドル ネームを入力します。
[ユーザー コントロール テスト コンテナ] で、[プロパティ] グリッドの一番下にスクロールし、DisplayStyle プロパティを選択します。別の値を選択し、いずれかのテキスト ボックスのテキストを変更することで、ラベルがどのように変化するか観察します。
[ファイル] メニューの [すべてを保存] をクリックして、作業を保存します。
次の手順
このレッスンでは、列挙型を使用して、値のリストを持つプロパティを作成する方法について説明しました。次のレッスンでは、ユーザー コントロールをフォーム上に配置してテストする方法を説明します。
次のレッスン : 「ユーザー コントロールのテスト」