2010-06-02 8 views
11

Utilizzo diversi set di controlli nella stessa posizione di un modulo. Per impostazione predefinita tutti sono visibili = false e quindi determinati sottoinsiemi dei controlli sono impostati su visibile mentre l'utente seleziona valori specifici in un controllo a discesa della casella combinata.Gestione di numerosi controlli sovrapposti in Visual Studio

Dal punto di vista dell'utente questo funziona bene poiché vedono solo i controlli necessari.

Tuttavia, poiché i controlli occupano la stessa posizione sul modulo, è difficile gestirli nella vista Progettazione di Visual Studio.

C'è un modo per raggruppare gruppi di questi controlli sovrapposti in Visual Studio in modo da poter selezionare l'intero sottoinsieme di controlli in modo rapido e semplice? C'è un modo per nascondere determinati controlli in visualizzazione struttura? In questo momento tutto è impilato uno sopra l'altro durante lo sviluppo, quindi è difficile gestire questi controlli.

risposta

9

Per far funzionare una tale bestia, inserisco ogni gruppo nel proprio UserControl. Sul tuo MainForm impilerai tutti questi UserControl uno sopra l'altro.

Quindi al MainForm non è possibile ottenere una buona panoramica, ma ora per ogni gruppo è stata visualizzata la propria vista designer e nella propria forma principale è possibile nascondere il gruppo completo con una singola riga di codice userControl.Visible = false.

+0

Non so perché non ci ho pensato, ma funziona perfettamente. Grazie! – Dave

+0

Sono abbastanza nuovo a tutto questo. Esattamente come vado alla visualizzazione designer per un GroupBox? – Bernhard

+1

@ Bernhard: abbastanza facilmente. Se fai doppio clic all'interno di solution explorer nel modulo o in uno studio di controllo utente, per impostazione predefinita verrà aperta la vista del designer. Ma se stai guardando il codice del tuo modulo o controllo puoi anche semplicemente fare clic con il tasto destro del mouse all'interno del codice e selezionare * Vista disegno * dal menu di scelta rapida. – Oliver

0

Non puoi nasconderli.

Tuttavia è possibile raggrupparli nella casella di gruppo e utilizzare la funzione "Porta in primo piano" e "Invia indietro".

+0

che non funziona, non appena uno si sovrappone all'altro diventa parte di esso. –

4

Un TabControl può farlo, funziona bene in modalità progettazione. Hai solo bisogno di nascondere le schede in fase di esecuzione. Controlla il mio codice in this thread.

+0

Ah, anche questa è una bella idea! – Dave

+0

Penso che questa idea sia superiore alla risposta di Oliver per la maggior parte dei casi perché consente di raggruppare i controlli per scenario. In quasi tutti i casi in cui questo è applicabile i controlli sono specifici per scenario/contesto, quindi questa metodologia rende più semplice non solo visualizzare solo alcuni controlli alla volta, ma anche vedere solo i controlli che l'utente vedrebbe insieme. –

-1

Prima di tutto,

Se si lavora con più componenti nello stesso luogo, è possibile utilizzare groupboxes nel modulo. Quindi, per sovrapporre queste caselle di gruppo, è necessario modificare ciascuna delle caselle di gruppo in una posizione diversa nella schermata del modulo. Dopo la modifica, è necessario immettere manualmente le dimensioni e i dati sulla posizione nel menu delle proprietà della casella di gruppo.

Se si desidera modificare una casella di gruppo dopo la posizione impostata, è possibile fare semplicemente clic con il pulsante destro del mouse su una qualsiasi delle caselle di gruppo, quindi fare clic sui comandi "invia indietro" e "porta in primo piano". Spero possa essere d'aiuto.

Problemi correlati