Individuare uno specifico Controllo in base alla sua Proprietà ".Name"

Da Gambas-it.org - Wikipedia.

Per individuare uno specifico Controllo grafico in base alla sua Proprietà ".Name", è possibile adottare alcune modalità.

La prima modalità fa uso della Proprietà ".Controls" della parola "Me". A detta Proprietà va specificato fra due parentesi quadre il valore della Proprietà ".Name" assegnato al Controllo che intendiamo individuare.

Nel seguente esempio abbiamo quattro Label, alle quali assegniamo un valore stringa alla Proprietà ".Name" di ciascuna. Sulla base della Proprietà ".Name" otteniamo il testo contenuto dalla Proprietà ".Text" di una Label prescelta:

Public Sub Form_Open()

 Dim lb as Label

 For b as Byte = 0 To 3
   With bt = New Label(Me)
     .Name = "Label " & Cstr(b)
     .X = (b * 60)
     .Y = (b * 30)
     .W = 80
     .H = 30
     .Text = "Testo Label " & Cstr(b)
     .Border = Border.Plain
   End With
 Next

End


Public Sub Button1_Click()

 Print me.Controls["Label 2"].Text

End

Un'altra modalità molto simile alla precedente individua più brevemente il Controllo con la parola-chiave "Me" seguita immediatamente da due parentesi quadre, nelle quali è posto il valore assegnato alla Proprietà ".Name" del Controllo da individuare. Questa istruzione assegna il Controllo a una variabile del medesimo tipo del predetto Controllo.

Public Sub Button1_Click()

 Dim lb As Label
  
 lb = Me["Label 2"]

 Print lb.Text

End

Un'altra modalità cerca il Controllo mediante un ciclo:

Public Sub Button1_Click()

 Dim ob as Object

 For Each ob in Me.Controls
   if ob.Name = "Label 2" Then Print ob.Text
 Next

End