Rimuovere un controllo inserito da codice

venerdì 11 luglio 2008 - 16.43

willy_80 Profilo | Senior Member

Ciao a tutti,

Ho una serie di controlli inseriti da codice e ora vorrei rimuoverne alcuni.
e ho tentato così:

Dim Controllo As Label
Dim Nome_Controllo As String = "Rimozione"
Controllo = Controls.Find(Nome_Controllo, True)(0)
ActiveControl = Controllo
Controls.Remove(ActiveControl)

il problema è che se ci provo con un controllo inserito da design me lo rimuove mentre con uno inserito da codice non lo fa.....

alexmed Profilo | Guru

Ciao
Scusa la domanda (dovuta all'inesperienza) ma a cosa ti serve costruire dei controlli se poi li devi distruggere?

willy_80 Profilo | Senior Member

nel mio programma elaboro dei dati e l'operatore decide quali tenere e quali eliminare e di conseguenza alcuni controlli dopo averli creati li devo eliminare.

freeteo Profilo | Guru

ciao,
i controlli che crei a runtime fanno parte della collection "Controls" del controllo contenitore, tipicamente Form, ma potrebbe essere anche Panel, Groupbox etc...

Ti basta andare in quella collection e rimuovere quello, con un codice di questo tipo:
Label miaLabel = new Label(); miaLabel.Name = "nomeLabel"; miaLabel.Text = "ciao ciao"; this.Controls.Add(miaLabel); this.Controls.RemoveByKey("nomeLabel");
come vedi, lo puoi rimuovere dal nome, ovvero la proprietà "name" che quindi ti conviene impostare tu, così magari sei più comodo.

(* ps: il codice è in c#, però è facilmente adattabile in vb.net, il "this" è la form, se è in un pannello metterai "mioPannello.Controls..." etc...)

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

willy_80 Profilo | Senior Member

FANTASTICO !!! grazie mille ora ho anche capito dov'era il mio errore, cioè, cercavo di eliminare un controllo nel form mentre il controllo era nel panel
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5