PDA

View Full Version : [Vb.net] Lista controlli completa di quelli personalizzati


seven.7
02-10-2007, 11:35
Ho creato un oggetto personalizzato e volevo creare una lista di tutti i controlli del form dato che ciclare il tutto con for each... in me.control... non mi è possibile perchè ci sono group box e altri contenitori. Ho creato la classe che credo corretta:

Public Class AllControls

Inherits Control

Public Sub New(ByVal control As Control)
Popola(control)
End Sub

Private Sub Popola(ByVal ctrl As Control)
Me.Controls.Add(ctrl)
Dim ctrlChild As Control
For Each ctrlChild In ctrl.Controls
Popola(ctrlChild)
Next
End Sub

End Class

richiamando il tutto con for each però mi ha generato questo errore...

Impossibile eseguire il cast di oggetti di tipo 'Tariffe_eBay.sez03negozio' sul tipo 'Tariffe_eBay.TextBoxMoney'.

come risolverlo? o ancora meglio come posso prendere in riferimento un controllo del form senza ciclare per tutti i controlli? scrivendo me.control(nomecontrollo) mi restituiscie sempre un valore vuoto... grazie mille

seven.7
02-10-2007, 13:47
Ecco come ho risolto, thanks uguale:

Public Class sez03negozio
Dim AllTextBoxMoney As New ArrayList

Public Sub New()

' Chiamata richiesta da Progettazione Windows Form.
InitializeComponent()

' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
AllControlsTextBoxMoney(Me)

End Sub

Private Sub AllControlsTextBoxMoney(ByVal ctrl As Control)
If TypeOf ctrl Is TextBoxMoney Then
AllTextBoxMoney.Add(ctrl)
End If
Dim ctrlChild As Control
For Each ctrlChild In ctrl.Controls
AllControlsTextBoxMoney(ctrlChild)
Next
End Sub