Visual Basic 2005 または Visual Basic .NET を使用して、オブジェクトの ArrayList または Collection を Windows フォームに連結する方法

この記事は、以前は次の ID で公開されていました: JP313640
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
Microsoft Visual C# .NET については、次の資料を参照してください。313634
概要
この資料では、Microsoft Visual Basic 2005 または Microsoft Visual Baisc で .NET オブジェクトの ArrayList を Microsoft Windows フォームに連結する方法について、手順を追って説明します。この資料の例では、3 つのテキスト ボックスを含む Windows フォームを使用し、オブジェクトのプロパティを表示します。また、ArrayList 内を参照する 4 つのコマンド ボタンも作成します。

必要条件

必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は次のとおりです。
  • Visual Basic 2005 または 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 PropertyEnd Class				

ArrayList にクラスのインスタンスを追加する

次に、オブジェクトを作成し、これらを ArrayList クラスに追加します。
Private al As New ArrayList()al.Add(New guitar("Gibson", "Les Paul", 1958))al.Add(New guitar("Fender", "Jazz Bass", 1964))al.Add(New Guitar("Guild", "Bluesbird", 1971))				

オブジェクトのプロパティをフォーム コントロールに連結する

ArrayList を作成した後で、オブジェクトの個々のプロパティを Windows フォーム コントロールに連結できます。これを行うには、TextBox コントロールの DataBindings プロパティの Add メソッドを呼び出します。また、連結されるコントロール プロパティ、ArrayList の名前、およびオブジェクトのプロパティを渡す必要があります。
TextBox1.DataBindings.Add("Text", al, "Make")TextBox2.DataBindings.Add("Text", al, "Model")TextBox3.DataBindings.Add("Text", al, "Year")				

ArrayList 内を参照する手段を提供する

この処理の最後の手順では、CurrencyManager クラスを使用して ArrayList 内を参照します。これを行うには、CurrencyManager をフォームの BindingContext (この場合は ArrayList) に関連付けます。
Private cMan As CurrencyManagercMan = CType(Me.BindingContext(al), CurrencyManager)				
CurrencyManager クラスには Position プロパティがあり、このプロパティを使用して ArrayList のメンバに対して繰り返し処理を行うことができます。Position の現在の値を増減することによって、フォーム上の 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 2005 または Visual Basic .NET で Windows アプリケーション プロジェクトを新規作成します。デフォルトで Form1 がプロジェクトに追加されます。

    : Visual Basic 2005 では、コードを変更する必要があります。Windows フォーム プロジェクトを作成すると、デフォルトでプロジェクト用のファイルが 2 つ作成されます。フォームの名前が Form1 の場合、フォームを表すこの 2 ファイルの名前は Form1.vb および Form1.Designer.vb です。ユーザーによるコードの記述は Form1.vb ファイルで行います。Form1.Designer.vb ファイルには、Windows フォーム デザイナによってコードが記述されます。Windows フォーム デザイナは、Partial キーワードを使用して、Form1 を 2 つの異なるファイルに分けて実装します。この動作により、Windows フォーム デザイナが生成したコードが、ユーザーが記述したコード内に散在することがなくなります。

    Visual Basic 2005 の新しい言語機能強化の詳細については、以下の MSDN (Microsoft Developer Network) Web サイトを参照してください。部分クラスおよび Windows フォーム デザイナの詳細については、次のマイクロソフト Web サイトを参照してください。
  2. プロジェクトにクラスを 1 つ追加します。
  3. 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 PropertyEnd Class					
  4. Form1 に 3 つの TextBox コントロールを追加し、横に並べて配置します。
  5. Form1 に 4 つの Button コントロールを追加し、横に並べて配置します。
  6. ボタンの Text プロパティを次のように変更します。
    ボタンText
    Button1Next
    Button2Previous
    Button3First
    Button4Last
  7. Form1 の宣言セクションに以下のコードを追加します。
    Private al As New ArrayList()Private cMan As CurrencyManager					
  8. Form_Load イベントに以下のコードを追加します。
    al.Add(New guitar("Gibson", "Les Paul", 1958))al.Add(New guitar("Fender", "Jazz Bass", 1964))al.Add(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")					
  9. Form_Load イベントの後に、以下のコードを追加します。
    Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button1.Click        cMan.Position += 1End SubPrivate Sub Button2_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button2.Click        cMan.Position -= 1End SubPrivate Sub Button3_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button3.Click        cMan.Position = 0End SubPrivate Sub Button4_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button4.Click        cMan.Position = al.Count - 1End Sub					
  10. プロジェクトをビルドして実行します。
  11. ボタンをクリックすると、異なる配列要素が表示されます。オブジェクトの値は編集できます。

Collection オブジェクトの使用

Collection オブジェクトを使用して、この構造を格納することもできます。Collection オブジェクトを使用してテストするには、以下の手順を実行します。
  1. Form_Load イベント プロシージャで以下のコードを探します。
    Private al As New ArrayList()					
  2. 上記のコードを以下のコードに置き換えます。
    Private al As New Collection()					
  3. プロジェクトへの変更を保存した後、再びプロジェクトを実行します。
関連情報
詳細については、Visual Studio 2005 または Visual Studio .NET のオンライン ヘルプ ドキュメントのトピック「Windows フォーム上のデータのコンシューマ」を参照してください。
プロパティ

文書番号:313640 - 最終更新日: 02/24/2014 20:25:14 - リビジョン: 4.2

  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • kbnosurvey kbarchive kbvs2005swept kbvs2005applies kbhowtomaster KB313640
フィードバック