Buongiorno a tutto il team!
E' risaputo che con un controllo Vbox si possono inserire alcuni pulsanti in modo dinamico con un codice tipo questo:
dati = cn.Exec("Select * From tabella_sqlite") 'RESULT
For conta = 0 To dati.fields.count - 1 'CICLA NEI CAMPI
bott = New Button(VBox1) As "grp_bott" 'CREA IL BOTTONE NEL CONTENITORE VBOX (grp_bott)
bott.text = dati.Fields[conta].name 'RINOMINA IL BOTTONE COL NOME DEL CAMPO CORRENTE
bott.height = 20
Next
e poi con una routine evento sul gruppo bottoni ottenere il nome del pulsante premuto:
Public Sub grp_bott_Click()
Label1.caption = "Hai agito sul pulsante: " & Last.Text
end
Se però provo farlo con delle caselle di testo anzichè pulsanti, e provo ad attivare evento mousedown sul gruppo, non riesco a distinguere la casella a cui ho puntato. Vi risulta sia possibile questa cosa?
Chiarissimo!
La differenza sta nel contenitore, che nel mio caso era un Vbox e nel tuo in un HPanel.
Probabilmente i controlli Hbox e Vbox consentono di farlo solo con i pulsanti, mentre
utilizzando HPanel e Vpanel la cosa funzione!
Grazie infinte per il contributo!
No, non è così:
come ti ho detto se cambia il contenitore il risultato deve essere uguale (naturalmente non esteticamente)
Fai girare questo codice in un progetto grafico vergine:
Public Sub Form_Open()
Dim aResult As String[] = ["Pippo", "Pluto", "Paperino", "Topolino", "Minnie", "Zio Paperone", "Gastone"] ' Simula il risultato di un'interrogazione
Dim hText As TextBox
Dim hVBox As VBox
With Me
.Arrangement = Arrange.Vertical
.W = 200
.H = 300
.Margin = True
End With
With hVBox = New VBox(Me)
.Expand = True
.Spacing = True
End With
For i As Integer = 0 To aResult.Max
With hText = New TextBox(hVBox) As "TextBox"
.Name = "TextBox" & CStr(i + 1)
.H = 35
.Text = aResult[i]
End With
Next
End
Public Sub TextBox_MouseDown()
Print Last.Name;; Last.Text
End
:ciao: