VB.NET: поля из класса - PullRequest
       1

VB.NET: поля из класса

0 голосов
/ 25 ноября 2010

У меня есть класс, заполняемый из строк, разделенных запятыми, в текстовом файле.

Я пытаюсь, чтобы свойство name каждого объекта отображалось в списке, а остальные свойства выбранного объекта показывались в текстовых полях. Как загрузить свойства выделенного объекта в правильное текстовое поле?

Ответы [ 2 ]

0 голосов
/ 25 ноября 2010

У вас есть один TextBox для каждого свойства, а число свойств является статическим, не так ли?Вы должны установить DisplayMember на имя свойства, которое вы хотите видеть в списке.

Этот упрощенный пример должен работать:

Public Class ListBox
    Private Sub ListBox_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim allFoos As New List(Of FooClass)
        For i As Int32 = 1 To 10
            Dim foo As New FooClass
            foo.Name = "Foo_" & i
            foo.Prop1 = "Prop1_" & i
            foo.Prop2 = "Prop2_" & i
            foo.Prop3 = "Prop3_" & i
            allFoos.Add(foo)
        Next
        Me.ListBox1.DataSource = allFoos
        Me.ListBox1.DisplayMember = "Name"
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim foo As FooClass = DirectCast(ListBox1.SelectedItem, FooClass)
        Me.TxtName.Text = foo.Name
        Me.TxtProp1.Text = foo.Prop1.ToString
        Me.TxtProp2.Text = foo.Prop2.ToString
        Me.TxtProp3.Text = foo.Prop3.ToString
    End Sub
End Class

Class FooClass
    Private _name As String
    Private _prop1 As Object
    Private _prop2 As Object
    Private _prop3 As Object

    Public Property Name() As String
        Get
            Return _name
        End Get
        Set(ByVal value As String)
            _name = value
        End Set
    End Property
    Public Property Prop1() As Object
        Get
            Return _prop1
        End Get
        Set(ByVal value As Object)
            _prop1 = value
        End Set
    End Property
    Public Property Prop2() As Object
        Get
            Return _prop2
        End Get
        Set(ByVal value As Object)
            _prop2 = value
        End Set
    End Property
    Public Property Prop3() As Object
        Get
            Return _prop3
        End Get
        Set(ByVal value As Object)
            _prop3 = value
        End Set
    End Property
End Class
0 голосов
/ 25 ноября 2010

Я предполагаю, что у класса, который вы заполняете, есть список объектов, и что вы уже выяснили, как заполнить список ...

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

    For Each obj As YourObjectType In YourClass.CollectionOfYourObjects

        If obj.Name = ListBox1.SelectedItem.ToString Then

            Textbox1.Text = obj.Property1
            Textbox2.Text = obj.Property2

        End If

    Next

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...