2012-11-27 18 views
9

Sto creando un'applicazione in C# utilizzando i moduli di Windows, voglio scambiare completamente tutto il contenuto in un modulo di Windows e sostituirlo con qualcos'altro. C'è un modo conveniente per farlo?Modifica contenuto in un modulo di Windows

Esempio: ho un menu, quando faccio clic su "start", voglio che il menu scompaia e che il gioco inizi. Non sto usando XNA o qualcosa del genere che è un po 'il punto di questo intero progetto.

+0

vedere la risposta per questa domanda: http://stackoverflow.com/questions/297526/what-is-the-best-way-to-clear-all-controls-on-a-form-c – 03Usr

+0

Vedere [questa risposta] (http://stackoverflow.com/questions/6953487/remove-hide -tab-headerswitcher-of-c-sharp-tabcontrol/6954785 # 6954785) che utilizza un controllo di tabulazione modificato. – Lii

risposta

7

Utilizzare uno Panel per ogni set di contenuti univoci che si desidera cambiare. Nascondi tutti i pannelli, tranne quello iniziale. Creare una variabile activePanel. Impostare activePanel sul pannello visualizzato corrente (ad esempio quello iniziale).

Quando è necessario cambiare, effettuare le seguenti operazioni:

activePanel.Visible = false; 
activePanel = <Panel you want to open now>; //I mean the Control, not an ID or something. 
activePanel.Visible = true; 

Un altro approccio è quello di rimuovere in modo dinamico e aggiungere controlli al form, ma in questo modo si dovrà scrivere molto più codice, hovewer, l'impronta della memoria dell'applicazione dovrebbe essere minore.

+0

Grazie, dovrebbe funzionare. – Jacco

4

questo funziona per me: Aggiunta di tutti i comandi come:

form.Controls.AddRange(Pages.ToArray()); 

Poi attivando la necessaria quella con

form.Controls[i].BringToFront(); 
Problemi correlati