[Vb.net] Lista controlli completa di quelli personalizzati

martedì 02 ottobre 2007 - 11.35

seven.7 Profilo | Junior Member

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

---------------------------------------------------------------------------
Ecco come ho risolto

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
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5