Overførsel og aflæsning af properties til TextBox og ListBox
Jeg har en Windowsform med en række dropdownbokse som jeg fylder med værdier fre en tabel. Selve navnene på dropdownboksene har jeg også i en tabel. Når jeg fylder dropdownboksene med værdier, sætter jeg samtidig property for ID og for den tekst, der skal vises, med følgende class:Public Class ControlItems
Private _ID As Integer
Private _Text As String
Sub New(ByVal _ID As Integer, ByVal _Text As String)
Me._ID = _ID
Me._Text = _Text
End Sub
Public ReadOnly Property ID() As Integer
Get
Return _ID
End Get
End Property
Public ReadOnly Property Text() As String
Get
Return _Text
End Get
End Property
Public Overrides Function ToString() As String
Return _Text
End Function
End Class
og denne kode:
'Dropdownboksen findes
Dim tmpControl As ComboBox = CType(Me.Controls.Find("s_" & TopicName, True)(0), ComboBox)
'Properties sættes
Do While ReaderEval.Read()
'De enkelte lookupværdier
ControlList.Add(New ControlItems(ReaderEval("IDEval"), ReaderEval("EvalText")))
Loop
tmpControl.Items.AddRange(ControlList.ToArray())
Brugerne kan nu klikke på emner i drowdowns og disse overføres til henholdsvis TextBoxe eller ListBoxe. Jeg vil nu gerne overføre ID og tekst fra dropdowns og til TextBox eller ListBox.
For ListBoxen mener jeg at kunne gøre dette med:
'Find ListBox
Dim tmpControl As ListBox = CType(Me.Controls.Find("r_" & TopicName, True)(0), ListBox)
Do While ReaderEvalLB.Read()
'De enkelte lookupværdier indsættes i ArrayList
ControlList.Add(New ControlItems(ReaderEvalLB("IDEval"), ReaderEvalLB("EvalText")))
Loop
tmpControl.Items.AddRange(ControlList.ToArray())
men hvordan gør man dette for en TextBox? En TextBox i et Windowsprogram har åbenbar ikke en indbygget property til ID (i modsætning til en webapplikation). Kan man på en eller anden måde bruge ControlItems?
Et andet spørgsmål: hvordan aflæser man ID på TextBoxe og ListBoxe efter at brugerne har valgt værdier - ID numrene skal jo så gemmes i databasen.