Avatar billede SpyFly Nybegynder
25. februar 2012 - 20:43 Der er 2 kommentarer og
1 løsning

vb2010 - bruge variabler i form control navne og identifiers - Begynder

Hej

Jeg er lige begyndt at bruge VB2010 og er rendt ind i et lille problem...
Jeg ville gerne kunne bruge en variabel til at definere f.eks. form.control-navne eller deres identifiers.

Et eksempel jeg har....

Select Case col_array(x, 1)
  Case Is = "Navn"
    Me.Label1.Text = item.Navn
  Case Is = "Cpr"
    Me.Label1.Text = item.Cpr1
End Select

her ville jeg heller have noget der ligner dette her....

Me.Label1.Text = item.col_array(x, 1)

men det giver fejl når jeg bruger min array.


et andet eksempel...

for x = 1 to 10
  me.label+x.text = .....
next

hvordan er den rette syntaks/hvor kan jeg finde info ?

Håber der er en som vil hjælpe en nybegynder i VB.
Avatar billede arne_v Ekspert
26. februar 2012 - 02:04 #1
Det er faktisk ikke et nemt spoergsmaal.

Umiddelbart virker det som du har brug for at have dine data i et Dictionary<string,string> fremfor en class X.
Avatar billede SpyFly Nybegynder
26. februar 2012 - 13:37 #2
Troede faktisk at det var et nemt spørgsmål... har tidlige arbejdet med asp og der var det nemt at lave.

Jeg har kigget lidt på dictionary... men kan ikke lige se guldkornet... har du evt et link eller et eksempel ?
Avatar billede SpyFly Nybegynder
06. marts 2012 - 15:55 #3
Jeg fik løsningen et andet sted... men her er den for alles nysgerrighed.


****************************
Public Class Form1
  Dim Labels As New List(Of Label)
  Dim Panel1 As New Panel
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Panel1.Dock = DockStyle.Fill
      Controls.Add(Panel1)
      For count As Integer = 1 To 10
        Dim Lbl As New Label
        Lbl.Name = "Label" & count.ToString
        Lbl.Location = New Point(20, 30 * count)
        Lbl.Size = New Size(50, 20)
        Panel1.Controls.Add(Lbl)
        Labels.Add(Lbl)
      Next
      Dim Values As List(Of Integer) = Enumerable.Range(100, 10).ToList
      For count As Integer = 1 To 10
        Panel1.Controls("label" & count.ToString).Text = Values(count - 1).ToString
        ' OR
        Labels(count - 1).Text = Values(count - 1).ToString
      Next
  End Sub
*********************************************
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester