|
VB.Net-Forum - Beitragsübersicht - |
|
Thema | V12: Automatische Füllung von Steuerelement Informationen |
Von |
Alex |
Datum |
09. September 2015 um 18:50:24 |
Frage |
Hallo, ich stecke gerade in der Klemme. Ich denke sicherlich zu kompliziert und hänge deswegen fest.
Folgendes: Ich lese über eine fremd Api Informationen aus einem Programm. Diese Informationen kommen als Array list an und es werden entsprechende Items ausgelesen. Diese Items sollen dann für Checkboxen als Text/Tooltip und Status dienen.
der Grundcode sieht so aus : Public Sub CheckAchv() Dim Ach As List(Of String) = API.ExecuteLua(My.Resources._0001) With fm '#### Fill 1 .ChkB1.Text = Ach.Item(1) .TT1.SetToolTip(.ChkB1, Ach.Item(7)) If Ach(3) = True Then .ChkB1.Enabled = False End If End With End Sub Jetzt habe ich 9 Checkboxen zu füllen die momentan alle benannt sind mit ChkB1,ChkB2,ChkB3,usw. Die Ressourcen sind ebenfalls durchgehen mit _0001,_0002_0003, usw.
Ich würde jetzt gerne, das er anhand eines Counters oder ähnlichem die durchnummerierten Ressourcen ausliest und den passenden Checkboxen zuteilt. Also, das ich nicht für jede Checkbox einen eigenen Code Abschnitt schreiben muss.
Wie realisiere ich das am einfachsten? Danke für eure Hilfe |
|
Antwort: |
Von |
Nico |
E-Mail |
nico.schertler@studentpartners.de |
Datum |
09. September 2015 um 19:31:28 |
Antwort |
Hallo,
du musst nur die entsprechenden Objekte raussuchen und dann deinen Code ausführen. Als erstes würde ich den Code in eine weitere Prozedur auslagern, die die entsprechenden Objekte als Parameter entgegen nimmt: Private Sub CheckAchv(chk As CheckBox, luaCode As String) Dim Ach As List(Of String) = API.ExecuteLua(luaCode) chk.Text = Ach.Item(1) fm.TT1.SetToolTip(chk, Ach.Item(7)) If Ach(3) = True Then chk.Enabled = False End If End Sub Dann geht es nur noch darum, die richtigen Objekte rauszusuchen. Ich vermute mal, fm ist irgend eine Art von Container. Dann geht einfach:Public Sub CheckAchv() For i As Integer = 1 To ... Dim luaCode As String = My.Resources.ResourceManager.GetString(String.Format("_{0:0000}", i)) Dim chk = CType(fm.Controls.Find("ChkB" & i), CheckBox) Next End Sub Nico |
|
[ Antwort schreiben | Zurück zum VB.Net-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|