この資料では、オブジェクトの配列を Windows フォームに連結する方法について手順を追って説明します。この資料の例では、3 つのテキスト ボックスを含む Windows フォームを使用し、オブジェクトのプロパティを表示します。また、Array クラス内を参照する 4 つのコマンド ボタンも作成します。
必要条件
次の一覧では、推奨する必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、スキル、知識、および Service Pack を説明しています。
-
Microsoft Visual Basic .NET
-
Visual Basic プログラミングの概念に関する中程度の理解
コードの説明
ここでは、このタスクを実現するのに必要なコーディングの概念について説明します。
クラスの設計
フォームに連結されるクラスには、プロパティ アクセサが必要です。また、連結されるすべてのプロパティには、Property Set メソッドおよび Property Get メソッドが必要です。この資料の例で使用しているクラスには、3 つのプロパティがあります (ここではその 1 つについて説明しています)。この資料の例では、パラメータ化されたコンストラクタも使用していますが、これは必須ではありません。
Public Class guitar
Private m_make As String
Private m_model As String
Private m_year As Short
Public Sub New(ByVal make, ByRef model, ByVal year)
Me.make = make
Me.model = model
Me.year = year
End Sub
Public Property make() As String
Get
Return m_make
End Get
Set(ByVal Value As String)
m_make = Value
End Set
End Property
End Class
配列にクラスのインスタンスを追加する
次に、オブジェクトを作成し、それらを Array クラスに追加します。
Dim al(2) As guitar
al(0) = new guitar("Gibson", "Les Paul", 1958)
al(1) = new guitar("Fender", "Jazz Bass", 1964)
al(2) = new guitar("Guild", "Bluesbird", 1971)
オブジェクトのプロパティをフォーム コントロールに連結する
配列を作成した後、オブジェクトの個々のプロパティを Windows フォーム コントロールに連結できます。これには、TextBox コントロールの DataBindings プロパティの Add メソッドを呼び出します。さらに、連結されるコントロール プロパティ、Array の名前、およびオブジェクトのプロパティを渡す必要があります。
textBox1.DataBindings.Add("Text", al, "make")
textBox2.DataBindings.Add("Text", al, "model")
textBox3.DataBindings.Add("Text", al, "year")
配列内を参照する手段を提供する
この処理の最後の手順として、CurrencyManager クラスを使用して Array 内を参照します。これには、フォーム (この場合は Array) の BindingContext に CurrencyManager を関連付けます。
Private cMan As CurrencyManager
cMan = CType(Me.BindingContext(al), CurrencyManager)
CurrencyManager クラスには Position プロパティがあり、このプロパティを使用して Array のメンバに反復処理を行うことができます。Position の現在の値に対して加算または減算を行うことによって、フォーム上に Array の異なるメンバを表示できます。以下に例を示します。
'Move forward one element.
cMan.Position += 1
'Move back one element.
cMan.Position -= 1
'Move to the beginning.
cMan.Position = 0
'Move to the end.
cMan.Position = al.Length - 1
手順例
-
Visual Basic .NET で新しい Windows アプリケーション プロジェクトを開きます。デフォルトで Form1 がプロジェクトに追加されます。
-
プロジェクトにクラスを 1 つ追加します。
-
Class1.vb のコードを以下のコードに置き換えます。
Public Class guitar
Private m_make As String
Private m_model As String
Private m_year As Short
Public Sub New(ByVal make, ByRef model, ByVal year)
Me.make = make
Me.model = model
Me.year = year
End Sub
Public Property make() As String
Get
Return m_make
End Get
Set(ByVal Value As String)
m_make = Value
End Set
End Property
Public Property model() As String
Get
Return m_model
End Get
Set(ByVal Value As String)
m_model = Value
End Set
End Property
Public Property year() As Short
Get
Return m_year
End Get
Set(ByVal Value As Short)
m_year = Value
End Set
End Property
End Class
-
Form1 に 3 つの TextBox コントロールを追加し、横に並べて配置します。
-
Form1 に 4 つの Button コントロールを追加し、横に並べて配置します。
-
ボタンの Text プロパティを次のように変更します。
元に戻す全体を表示する
|
ボタン
|
Text
|
|---|
|
Button1
| 次のスライド |
|
Button2
|
前のスライド
|
|
Button3
|
1 番目のスライド
|
|
Button4
|
最後のスライド
|
-
Form1 の宣言セクションに以下のコードを追加します。
Private al(2) As guitar
Private cMan As CurrencyManager
-
Form_Load イベントに以下のコードを追加します。
al(0) = new guitar("Gibson", "Les Paul", 1958)
al(1) = new guitar("Fender", "Jazz Bass", 1964)
al(2) = new guitar("Guild", "Bluesbird", 1971)
cMan = CType(Me.BindingContext(al), CurrencyManager)
TextBox1.DataBindings.Add("Text", al, "make")
TextBox2.DataBindings.Add("Text", al, "model")
TextBox3.DataBindings.Add("Text", al, "year")
-
Form_Load イベントの後ろに、以下のコードを追加します。
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
cMan.Position += 1
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
cMan.Position -= 1
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button3.Click
cMan.Position = 0
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button4.Click
cMan.Position = al.Length - 1
End Sub
-
プロジェクトをビルドして実行します。
-
ボタンをクリックすると、異なる配列要素が表示されます。オブジェクトの値は編集できます。
詳細については、Microsoft Visual Studio .NET オンライン ヘルプ ドキュメントのトピック「Windows フォーム上のデータのコンシューマ」を参照してください。
文書番号: 313639 - 最終更新日: 2005年10月19日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
- Microsoft Visual Basic .NET 2002 Standard Edition
- Microsoft Visual Basic .NET 2003 Standard Edition
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"