0

私はこの構造を持っており、構造タイプの配列があります。

Structure CustomerAccountsRec
    Dim strFirstName As String
    Dim strLastName As String
    Dim intAge As Integer
    Dim strAddress As String
    Dim strTown As String
    Dim strPostcode As String
    Dim strCusNum As String
End Structure

Public strCusArray() As CustomerAccountsRec

配列のstrCusNumを取得してコンボボックスに入力できるようにしたいのですが、その方法がわかりません。何か助けはありますか?

4

4 に答える 4

3

ToString前述のように、構造内のメソッドをオーバーライドすることもできます。また、List(Of CustomerAccountsRec)値を追加しやすくする を作成し、リストをComboBox'sDataSourceにバインドしました。

Public Class Form1
    Structure CustomerAccountsRec
        Dim strFirstName As String
        Dim strLastName As String
        Dim intAge As Integer
        Dim strAddress As String
        Dim strTown As String
        Dim strPostcode As String
        Dim strCusNum As String
        Public Overrides Function ToString() As String
            Return strCusNum
        End Function
    End Structure

    Public strCusArray As List(Of CustomerAccountsRec) = New List(Of CustomerAccountsRec)

    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.

        Dim carec As CustomerAccountsRec = New CustomerAccountsRec
        carec.strFirstName = "Hello"
        carec.strLastName = "World"
        carec.strCusNum = "Hello World"
        carec.strTown = "AnyTown"
        carec.strAddress = "AnyStreet"
        carec.strCusNum = "12345678"
        strCusArray.Add(carec)
        ComboBox1.DataSource = strCusArray

    End Sub
End Class
于 2013-01-27T00:53:54.847 に答える
0

あなたの質問が理解できれば。

の実際の結果Public strCusArray() As CustomerAccountsRecは null なので、これを使用して からCustomerAccountsRecまで のすべてのアイテムを追加することはできませんComboBox

System.Reflection 名前空間を使用する必要がありListます。Structure

  Structure CustomerAccountsRec
        Dim strFirstName As String
        Dim strLastName As String
        Dim intAge As Integer
        Dim strAddress As String
        Dim strTown As String
        Dim strPostcode As String
        Dim strCusNum As String
  End Structure

  Dim fi As FieldInfo() = GetType(CustomerAccountsRec).GetFields(BindingFlags.[Public] Or BindingFlags.Instance)
        For Each info As FieldInfo In fi
            ComboBox2.Items.Add(info.Name)
  Next

出典:C#版

于 2013-01-27T01:31:55.547 に答える
0

ComboBox.Items.Add メソッドを使用して項目を追加できます。構造を適切に表示するには、その ToString メソッドをオーバーライドする必要があります。

見る:

ComboBox: 項目へのテキストと値の追加 (バインディング ソースなし)

コンボボックス項目に値を追加する方法

于 2013-01-27T00:39:02.817 に答える
0

LINQ を使用して、表示する項目を含む配列を取得し、その配列をComboBox.

Dim combo as New ComboBox
combo.DataSource = strCusArray.Select(Function(f) f.strCusNum).ToArray()
于 2013-01-27T00:45:43.647 に答える