Sto lavorando su un'applicazione che dovrebbe contenere fino a 30 parametri dall'utente; a seconda del tipo di funzione utilizzata, questo elenco di parametri sarà diverso.
Per contesto, usiamo produrre (frutta / verdura) e mobili come due "caratteristiche" differenti.
Quello che devo fare è creare l'elenco completo dei controlli che verranno quindi inseriti in un pannello abilitato per lo scorrimento. Quando una funzione seleziona (produce / mobili), la lista dei controlli si ricostruisce dinamicamente, abilitando i controlli richiesti e disabilitando quelli irrilevanti. Quindi, l'elenco dovrebbe "comprimere" in modo che i controlli irrilevanti non siano più visibili all'utente (rimarranno attivi) e l'elenco è l'insieme di quelli richiesti.
Esempio: Supponiamo di avere cinque controlli (nome, materiale, colore, numero di serie, quantità per scatola). Produrre richiede [nome, colore, quantità per scatola], mentre Mobili richiede [nome, materiale, numero di serie].
Quindi, se cboFeature seleziona Produce, l'elenco di accompagnamento mostra solo tre controlli, contenenti l'elenco sopra. Se, quindi, l'utente passa a Mobili, l'elenco di controlli si aggiorna e mostra solo quelli richiesti. Tutto questo per dire che, nonostante abbia cinque controlli nominati, impostati e organizzati in un elenco, devo rimuovere i controlli irrilevanti e spostare quelli rimanenti verso l'alto.
Non ho bisogno di dettagli di programmazione di basso livello, solo un suggerimento di design di alto livello. Il mio pensiero iniziale è di creare una serie di controlli, quindi scrivere un metodo che trasmetta gli indici dell'array rilevanti a un altro 'array attivo' che verrà utilizzato per compilare l'elenco di controlli in questo pannello. Una volta che l'applicazione ha ricevuto la serie di controlli richiesti, può inserirli nell'elenco.
Ci scusiamo se non sono chiaro in tutto questo - altre idee sono le benvenute!
EDIT: Nel cercare qualcosa di vitale, ho scoperto che un FlowLayoutPanel probabilmente funzionerà abbastanza bene per quello di cui ho bisogno. Quello su cui sto lavorando al momento sta impostando una serie di controlli in un file di classe separato che può essere aggiunto direttamente al pannello. Se qualcuno ha qualche perfezionamento dell'idea, sono aperto a sentirli:)
EDIT # 2: Ho giocato un po 'con i FlowLayoutPanel, e sono al 99% positivo questa è la strada che andrò. Puoi nidificarli e aggiungere il nuovo controllo FLP a un genitore, se preferisci, quindi questo dovrebbe soddisfare abbastanza bene un elenco dinamico di controlli.