+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 4 su 4

Discussione: vb.net 2019: distruggere controlli creati a runtime

  1. #1
    kar64 non è in linea Scolaretto
    Post
    105

    vb.net 2019: distruggere controlli creati a runtime

    Salve a tutti.

    Non riesco a risolvere questo problema:

    con questo codice creo un array di controlli di tipo textbox:

    codice:
    For i As Integer = 1 To NumeroColonne.Value * NumeroRighe.Value
                TextBoxes(i) = New TextBox
                TextBoxes(i).Visible = True
                TextBoxes(i).Size = New Size(20, 20)
                ' sto caricando e quindi le celle non sono editabili
                If attivacelle = False Then
                    TextBoxes(i).Enabled = False
                End If
                Panel1.Controls.Add(TextBoxes(i))
    Next
    Il problema è che poi, in una seconda fase, dovrei eliminare tutti i textbox creati in maniera definitiva (come se non fossero mai stati creati). Se infatti provo con questo codice

    codice:
    For i As Integer = Panel1.Controls.Count - 1 To 0 Step -1
                Dim ctrl As Control = Panel1.Controls(i)
                If TypeOf (ctrl) Is TextBox Then
    
                    RemoveHandler ctrl.Click, AddressOf Caselle_Click
                    Panel1.Controls.Remove(ctrl)
                End If
    e visiono in debug l'array textboxes() continua ad essere presente e con tutti i suoi elementi.

    Potreste aiutarmi ?
    Grazie
    Ultima modifica di kar64; 05-09-2019 21:15 

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,253
    Blogs
    5
    In effetti non c'è crossposting ma metti a posto il resto. Il thread può continuare.
    Ultima modifica di AntonioG; 06-09-2019 07:21 
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    Dev-01 non è in linea Scolaretto
    Post
    447
    Rimuovi i controlli dal pannello ma non operi sull'array: è più che logico.

    Sono due oggetti distinti e se non lo fossero non avresti bisogno di aggiungere le textbox al panel via codice.

    Inoltre eliminare il controlli distrugge automaticamente gli handlers; handlers che, tra l'altro, non crei prima di aggiungere la textbox al suddetto panel.

  4. #4
    kar64 non è in linea Scolaretto
    Post
    105
    Ok. Grazie

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi