Visual Basic .NET または Visual Basic 2005 を使用して、ArrayList または構造体のコレクションを Windows フォームにバインドする方法

文書翻訳 文書翻訳
文書番号: 313638 - 対象製品
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

目次

概要

この手順を追って説明資料では、Windows フォームに構造体の ArrayList をバインドする方法について説明します。 例は、 ArrayList を移動する、構造体メンバーと 4 つのコマンド ボタンを表示する 3 つのテキスト ボックスに Windows フォームを含みます。

要件

Microsoft Visual Basic .NET または Microsoft Visual Basic 2005

コードの説明

ここではこのタスクの完了に必要なある重要なコーディング概念について説明します。

構造の設計

フォームにバインドする構造体にメンバー アクセサーが必要です。 構造体メンバーのアクセサーは事実上 プロパティの設定 と同じ/構造を 取得 クラスがあります。 この資料の例で使われる構造体は次の 3 つのメンバー (1 つだけを示します) を持ち。 パラメーター化されたコンストラクター も提供されますがなくてもします。
Private Structure guitar
    Friend mmake As String
    Friend mmodel As String
    Friend myear As Short

    Public Sub New(ByVal make, ByVal model, ByVal year)
        Me.mmake = make
        Me.mmodel = model
        Me.myear = year
    End Sub

    Public Property make() As String
        Get
            make = mmake
        End Get
        Set(ByVal Value As String)
            mmake = Value
        End Set
    End Property
End Structure
				

データ構造のインスタンスを ArrayList に追加

T ではインスタンスを作成、 ArrayList に追加、および次の手順に従います。
  1. 構造体の型の変数を宣言します。
  2. ArrayList を宣言します。
  3. 、構造体のインスタンスを作成し、 ArrayList に追加します。
Private myStruct As guitar
Dim al As New ArrayList()

myStruct = New guitar("Gibson", "Les Paul", 1958)
al.Add(myStruct) 
myStruct = New guitar("Fender", "Jazz Bass", 1964)
al.Add(myStruct)
myStruct = New guitar("Guild", "Bluesbird", 1971)
al.Add(myStruct)
				

フォームのコントロールへのデータ構造のメンバーのバインド

ArrayList の値が設定した後、構造体の各メンバーを Windows フォーム コントロールにバインドできます。 これを行うには、 テキスト ボックスのデータ連結 プロパティの 追加 メソッドを呼び出してしてバインドするプロパティ、 ArrayList の名前、構造体のメンバーを渡すください。
TextBox1.DataBindings.Add("Text", al, "make")
TextBox2.DataBindings.Add("Text", al, "model")
TextBox3.DataBindings.Add("Text", al, "year")
				

移動、ArrayList を使用する方法を提供します。

プロセスで最後が、 ArrayList を移動する方法を提供します。 これを行うには、 CurrencyManager 使わなければなりません。 フォームの BindingContext 、ここでは、構造体の ArrayList CurrencyManager を関連付けます。
Private cMan As CurrencyManager

cMan = CType(Me.BindingContext(al), CurrencyManager)
				
CurrencyManager オブジェクトには、 ArrayList のメンバーを反復処理を操作できる 位置 プロパティがあります。 追加または 配置 の現在値から減算すること、により、 ArrayList の別のメンバーをフォーム上で表示できます。
'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.Count - 1
				

ステップ バイ ステップの例

  1. Visual Basic .NET または Visual Basic 2005 で新しい Windows アプリケーション プロジェクトを開きます。
  2. Form1 に 3 つのテキスト ボックスを追加して、コントロールを水平方向に配置します。
  3. 4 つのコマンド ボタンを Form1 に追加して、コントロールを水平方向に配置します。
  4. 次へ] Button1 の 文字列を設定 変更します。
  5. 直前の動作と同時 Button2 の 文字列を設定 変更します。
  6. 初めて Button3 の 文字列を設定 変更します。
  7. 最後 Button4 の 文字列を設定 変更します。
  8. 次のコードを Form1 の宣言セクションに追加:
    Private Structure guitar
        Friend mmake As String
        Friend mmodel As String
        Friend myear As Short
    
        Public Sub New(ByVal make, ByVal model, ByVal year)
            Me.mmake = make
            Me.mmodel = model
            Me.myear = year
        End Sub
    
        Public Property make() As String
            Get
                make = mmake
            End Get
            Set(ByVal Value As String)
                mmake = Value
            End Set
        End Property
        Public Property model() As String
            Get
                model = mmodel
            End Get
            Set(ByVal Value As String)
                mmodel = Value
            End Set
        End Property
        Public Property year() As Short
            Get
                year = myear
            End Get
            Set(ByVal Value As Short)
    
    
            myear = Value
            End Set
        End Property
    End Structure
    
    Private myStruct As guitar
    Private al As New ArrayList()
    Private cMan As CurrencyManager
    					
  9. 次のコードを Form_Load イベントに追加:
    myStruct = New guitar("Gibson", "Les Paul", 1958)
    al.Add(myStruct)
    myStruct = New guitar("Fender", "Jazz Bass", 1964)
    al.Add(myStruct)
    myStruct = New guitar("Guild", "Bluesbird", 1971)
    al.Add(myStruct)
    
    cMan = CType(Me.BindingContext(al), CurrencyManager)
    
    TextBox1.DataBindings.Add("Text", al, "make")
    TextBox2.DataBindings.Add("Text", al, "model")
    TextBox3.DataBindings.Add("Text", al, "year")
    					
  10. 次のコード、 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.Count - 1
    End Sub
    					
  11. プロジェクトをビルドして実行します。
  12. ArrayList の異なる要素を表示するボタンをクリックします。 オブジェクトの値は編集できます。

コレクションの使用

Collection オブジェクトを使用して、構造体を格納することができます。 コレクション の使用をテストに Form_Load イベント プロシージャで、次のコード行を参照して:
Private al As New ArrayList()
もう一度の例を実行して上記のコード行を次のコードに置き換えて:
Private al As New Collection()

参照

次のトピック、Visual Studio .NET または Visual Studio 2005 のオンライン ヘルプ ドキュメントで参照してください。
Windows フォーム上のデータのコンシューマ

プロパティ

文書番号: 313638 - 最終更新日: 2014年2月24日 - リビジョン: 3.3
この資料は以下の製品について記述したものです。
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic 2005
キーワード:?
kbnosurvey kbarchive kbhowtomaster kbvs2005applies kbvs2005swept kbmt KB313638 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:313638
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com