Distruggere i Controlli grafici posti in un Contenitore
Per eliminare i Controlli posti in un Contenitore, si possono adottare alcune modlità.
Indice
Uso diretto del Metodo ".Clear()" della Proprietà ".Children"
Il Metodo ".Clear()" della Proprietà ".Children" di un Contenitore distruggerà tutti i Controlli presenti nel Contenitore medesimo.
Nel seguente esempio pratico poniamo vari Controlli sul Form, e con essi anche un Button cliccando il quale azionerà l'azione distruttiva:
Public Sub Button1_Click() Me.Children.Clear End
Qui i Controlli saranno posti in un Panel:
Public Sub Button1_Click() Panel1.Children.Clear End
Uso della Classe ContainerChildren
Alla variabile del tipo della Classe non creabile ContainerChildren, va assegnato il riferimento ai "Figli" (Children ) del Contenitore, e successivamente usare il Metodo ".Clear()".
Mostriamo un esempio pratico:
Public Sub Button1_Click() Dim cn As ContainerChildren cn = Me.Children cn.Clear End
Usando il ciclo "For...Each" e la variabile del tipo dei Controlli da distruggere
Se in un Contenitore sono presenti Controlli appartenenti a un unico tipo (ad esempio soltanto Button, allora si potrà usare l ciclo "FOR...EACH" e la variabile del tipo dei Controlli da distruggere.
Mostriamo un esempio pratico, nel quale in un Panel sono contenuti soltanto dei Button:
Public Sub Button5_Click() Dim bt As Button For Each bt In Panel1.Children bt.Delete Next End
Usando il ciclo "For...Each" e la variabile di tipo "Object"
Se invece sul Contenitore sono presenti Controlli di vari tipi, e si intende eliminare soltanto i Controlli appartenenti a un determinato tipo, allora con il ciclo "FOR...EACH" si utilizzerà una variabile di tipo Object, nella quale caricare tutti i Controlli e distinguerli successivamente all'interno del ciclo.
Mostriamo un esempio pratico, nel quale su un Form sono presenti vari tipi di Controllo. Si intende distruggere soltanto i Button:
Public Sub Button1_Click() Dim ob As Object For Each ob In Me.Children If Object.Type(ob) = "Button" Then ob.Delete Next End