#29: Svuotare tutte le TextBox di un form

Per svuotare tutte le TextBox di un form, è possibile utilizzare questo codice:

Dim ctrl As New Form.ControlCollection(Me)

ctrl = System.Windows.Forms.Form.ActiveForm.Controls

For Each c As Control In ctrl

   If TypeOf (c) Is System.Windows.Forms.TextBox Then

      c.Text = ""

   End If

Next

Pubblicato il 9 aprile 2008 su Tips. Aggiungi ai preferiti il collegamento . 7 commenti.

  1. Salve, mi chiamo francesco e stavo “lavorando” ad un progettino.
    Premetto immediatamente che non capisco nulla di programmazione, che sto ordinando il suo libro (se lo capisce mia nonna, non vedo come non riesca a capirlo io!😀 ) e che da questo suo sito ci sono moltissimi spunti da cui imparare.

    Il codice che hai riportato mi può essere utile, così com’è ma anche con specificazione dei textbox da “resettare”.

    L’ho applicato al programmino base con un pulsante, ma il codice (copiato di sana pianta) non mi resatta alcun chè.

    Sicuramente ho sbagliato o sbaglio io in qualcosa.

    I textbox sono nello stesso form, il codice l’ho incollato dopo aver cliccato due volte sul pulsante (quello che avevo previsto per resettare il contenuto delle textbox).

    La mia domanda, oltre a quella di capire dove ho sbagliato è..

    Che codice devo inserire in un altro pulsante, per far resettare solo determinati textbox?

    Grazie in anticipo per la risposta.
    Saluti,

    Mi piace

  2. Il problema era il mio!😛

    ..avevo sbagliato un dettaglio!😀

    Comunque, la domanda più in generale rimane:

    Come posso fare per cancellare solo determinate TextBox?

    saluti,

    Mi piace

  3. Puoi specificare meglio cosa intendi per “determinate TextBox”?
    Bisogna prima di tutto avere un criterio per selezionarle …
    Una possibilità potrebbe essere quella di impostare la proprietà “Tag” dei controlli TextBox e poi di testare questa proprietà.
    Se per esempio mettiamo “svuota” come proprietà Tag di alcuni controlli, il codice per svuotare solo le TextBox che hanno questa proprietà impostata a “svuota” è questo:

    ctrl = CType(System.Windows.Forms.Form.ActiveForm.Controls, ControlCollection)
    For Each c As Control In ctrl
    If TypeOf (c) Is System.Windows.Forms.TextBox Then
    Try
    If c.Tag.ToString = “svuota” Then
    c.Text = “”
    End If
    Catch ex As Exception
    ‘ non fa nulla
    End Try
    End If
    Next

    Ho inserito il test della proprietà Tag all’interno di un blocco Try … Catch per prevedere il caso in cui per una TextBox non fosse stata impostata la proprietà Tag (= valore nullo). Infatti in questo caso verrebbe sollevata un’eccezione.

    Mi piace

  4. Ciao… grazie per gli esempi di codice che metti a disposizione.
    Ho provato il codice qui sopra ma i miei text.box sono all’interno di controltab o di panel e non li cede.. possibile… passa alla funzione sono gli oggetti presenti direttamente sul form , nel mio caso solo i bottoni … come posso fare ?
    Grazie in anticipo.
    Mary

    Mi piace

  5. Ciao Mary.
    Nel caso di TextBox contenute in Panel o altri contenitori, il codice si complica un po’.
    In pratica, devi verificare se ci sono contenitori di vario tipo e “ciclare” all’interno di ciascuno di essi per trovare ulteriori TextBox…

    Mi piace

  6. Ciao ….
    ho inserito questo codice per pulire tutte le texbox ma mi viene restituito un errore su Form.ControlCollection:

    tipo Form.ControlCollection non definito

    dov’è il problema?
    grazie mille

    Mi piace

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: