Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C#] Scansionare tutti i componenti di un UserControl

    Ciao a tutti.
    Avrei la necessità di scorrere tutta la lista dei Controls di un UserControl.

    Leggendo sul forum ho utilizzato il codice:

    codice:
                
    foreach (Control ctrl in fCmp.Controls){
                    i++;
                    MessageBox.Show(ctrl.GetType().ToString());    
                }
    Dove fCmp é il mio UserControl.
    Il problema é che se ho più controlli all'interno e che si trovano in diversi panel allora
    questi non vengono visualizzati.

    La gerarchia degli oggetti é:

    UserControl
    _|+ Panel
    ___|+ TextBox
    ___|+TextBox
    ___|+GroupBox
    _____|+ Label
    _____|+ Label

    Dovrei fare un qualcosa di ricorsivo, ma prima vorrei sapere se esiste un metodo già
    implementato in qualche classe di servizio.

    Grazie


  2. #2
    Ho risolto!

    Lascio la soluzione:
    codice:
            private void scanControls(Control p_tmp){
                // eseguo il ciclo tra i component che compongono lo UserControl
                foreach (Control ctrl in p_tmp.Controls)
                {
                    // applico gli stili richiamando un metodo preposto
                    applyFontStyle(ctrl);
                    // verifico se il control contiene al suo interno altri control
                    if (ctrl.HasChildren) {
                        // richiamo il metodo in modo ricorsivo
                        scanControls(ctrl);
                    }
                }        
            }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.