Pillole di VB.NET – Trovare Dinamicamente una Textbox Associata ad un Bottone e Scriverci Dentro
Mettiamo il caso di avere 4 bottoni (ad esempio con nome da Button1 a Button4) e 4 textbox (ad esempio con nome da Textbox1 a Textbox4). Premendo uno dei bottoni vogliamo che venga scritto “OK” nella Textbox con lo stesso numero.
' importiamo la libreria per gestire le regular expression Imports System.Text.RegularExpressions Public Class Form1 ' agganciamo l'evento click sui 4 bottoni alla stessa sub Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click ' dichiariamo un oggetto bottone vuoto e lo agganciamo al bottone intercettato che ha lanciato l'evento di click Dim btn As Button = CType(sender, Button) ' ricostruiamo il name prendendo la parte comune dei name delle textbox (TextBox) e tramite l'espressione regolare catturiamo la parte numerica del name del bottone e gliela agganciamo Dim name As String = "TextBox" & CInt(Regex.Replace(btn.Name.ToString, "[^\d]", "")).ToString.Trim ' dichiariamo un oggetto textbox e tramite il CType attraverso il name cerchiamo i controlli del form con quel name (ed essendo solamente uno con quel nome per vincolo di vb) glielo assegna Dim txt As TextBox = CType(Me.Controls.Find(name, True)(0), TextBox) ' assegniamo all'oggetto txt il testo "OK" txt.Text = "OK" End Sub End Class
P.S. lo so che l’esempio qui sopra è stupido ma il codice può essere rimaneggiato per fare cose più interessanti o risolvere problemi 😛
Pillole di VB.NET - Trovare Dinamicamente una Textbox Associata ad un Bottone e Scriverci Dentro,Category: Informatica