2013-02-13 2 views
6

Non ho modo migliore di spiegarlo, ma voglio implementare un contenitore che viene mostrato solo dopo che l'utente ha fatto clic su "Avanzate" o un segno più da qualche parte nella finestra di dialogo . Ho un modulo di accesso e voglio aggiungere alcune impostazioni "Avanzate". Ma dovrebbero normalmente fuori dalla vista.Implementare un contenitore "click-here-expand"

Ovviamente, la finestra di dialogo deve essere ridimensionata in modo appropriato per contenere il contenuto esteso.

Come dovrei andare a implementare una cosa del genere. Ho provato alcune ricerche su Google, ma non riesco a trovare le parole di ricerca corrette. Windows non sembra averlo per impostazione predefinita.

+2

Si chiama Expander. Stai usando WPF, Winforms o ASP.NET? –

+1

@DanielHilgarth Solo gli oggetti Expander tendono ad essere visibili e si estendono - come la fisarmonica di jQuery UI - dove questa descrizione sembra voler che il pulsante di espansione "estenda" il suo genitore. –

+3

Non vedo perché questo si stia abbassando: voti e voti da chiudere. È una vera domanda e, presumendo che non abbia familiarità con WinForms, è una domanda perfettamente ragionevole. Solo perché sembra banale ad alcuni di noi non significa che sia una cattiva domanda. – David

risposta

3

come suggerito da John Willemse, ho finito per creare la funzionalità da solo. Ho aggiunto uno Panel nel modulo che ho appena impostato visibile o invisibile.

nel costruttore del form (per nasconderlo a prima vista):

public FrmLogin() { 
     InitializeComponent(); 

     pnlAdvanced.Visible = false; 
     Height -= pnlAdvanced.Height; 
    } 

Poi, ho aggiunto un LinkLabel con questo Clicked gestore:

private void linkLabel1_LinkClicked(object sender, 
          LinkLabelLinkClickedEventArgs e) { 
     if (pnlAdvanced.Visible == false) { 
      Height += pnlAdvanced.Height; 
      pnlAdvanced.Visible = true; 
     } else { 
      Height -= pnlAdvanced.Height; 
      pnlAdvanced.Visible = false; 
     } 
    } 

funziona perfettamente e senza codice aggiuntivo necessario.