Torna al Thread
Private Function Cerca_E_Rimuovi_Controllo(ByRef Contenitore As Object,
ByRef Oggetto As Object) As Object
Dim Risultato As Object = Nothing
' Controlla tutti i controlli del contenitore
For Each Controllo In Contenitore.Controls
' Se il controllo è un contenitore, cerca all'interno dei suoi controlli
If Controllo.Controls.Count > 0 Then Risultato = Cerca_E_Rimuovi_Controllo(Controllo, Oggetto)
' Se l'oggetto è stato trovato e pertanto è stato recuperato anche il contenitore, esce dal ciclo
If Risultato IsNot Nothing Then Exit For
' Verifica se il controllo attuale corrisponde all'oggetto cercato
If Controllo.Equals(Oggetto) Then
' Rimuove l'oggetto dal contenitore e restituisce al ciamante il contenitore
Contenitore.Controls.Remove(Controllo)
Risultato = Contenitore
Exit For
End If
Next
' Restituisce il contenitore che conteneva l'oggetto
Return Risultato
End Function
Public Sub Converti_TextBox(ByRef Maschera As System.Windows.Forms.Form, _
ByRef Oggetto As System.Windows.Forms.TextBox)
Dim Contenitore As Object = Nothing
' Toglie la textbox dai controlli della maschera
Contenitore = Cerca_E_Rimuovi_Controllo(Maschera, Oggetto)
' Memorizza i dati della textbox, poi la converte e recupera i
' dati memorizzati
Oggetto = New Nuovo_Tipo
[codice in cui configuro le proprietà del nuovo tipo]
' Inserisce nuovamente l'oggetto nei controlli della maschera
If Contenitore IsNot Nothing Then Contenitore.Controls.Add(Oggetto)
End Sub