C # Come progettare pannello per un uso successivo .. (schermata Impostazioni)

StackOverflow https://stackoverflow.com/questions/2165269

  •  24-09-2019
  •  | 
  •  

Domanda

Quindi, sto facendo una schermata di impostazioni nel momento in cui avrò un albero sulla sinistra, poi un pannello sulla destra. Thats pannello sullo schermo saranno dipenderà da ciò che è stato selezionato elemento albero ..

Basta chiedersi come posso fare sulla progettazione di questi pannelli e risparmio tema per l'uso in seguito (tempo di esecuzione).

Do bisogno di andare e di tirare fuori ecc codice di vista che poi copiare in una classe o qualcosa del genere?

Scusate se la mia domanda è un po 'vago, ma io non sono davvero sicuro di quello che voglio: -O

Modifica Sì, sto cercando di fare una schermata di impostazioni come quello trovato in Visual Studio. Un albero a sinistra (come esploratore) e quindi un nuovo layout modulo per ogni nodo dell'albero.

È stato utile?

Soluzione

Ti consigliamo di creare controlli utente al posto di un pannello, è facile da modificare nella finestra di progettazione. Ancorare la visualizzazione ad albero per il codice a sinistra e l'uso come questo per selezionare il controllo utente attivo:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        treeView1.AfterSelect += new TreeViewEventHandler(treeView1_AfterSelect);
    }
    private UserControl mActivePanel;

    void treeView1_AfterSelect(object sender, TreeViewEventArgs e) {
        UserControl newPanel = null;
        switch (e.Node.Index) {
            case 0: newPanel = new UserControl1(); break;
            case 1: newPanel = new UserControl2(); break;
            // etc...
        }
        if (newPanel != null) {
            if (mActivePanel != null) {
                mActivePanel.Dispose();
                this.Controls.Remove(mActivePanel);
            }
            newPanel.Dock = DockStyle.Fill;
            this.Controls.Add(newPanel);
            this.Controls.SetChildIndex(newPanel, 0);
            mActivePanel = newPanel;
        }
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top