C# Visual Studio funzione Switch.

Pacifico437

Utente Gold
27 Aprile 2012
166
78
6
200
Buonasera,

non riuscendo sono a chiedere un suggerimento.

In un Form ho tre Pannelli (Panel1, Panel2, Panel3) ed un ComboBox che richiama i suddetti pannelli.
Effettuando la scelta dal ComboBox dovrebbe rimanere visibile 1 Pannello.

Ho usato il seguente codice e non comprendo dove sbaglio:
Codice:
switch (ComboBox.SelectedItem.ToString().Trim())
            {
                case "Panel1":
                    Panel1.Visible = true;
                    Panel2.Visible = false;
                    Panel3.Visible = false;
                    break;
                case "Panel2":
                    Panel1.Visible = false;
                    Panel2.Visible = true;
                    Panel3.Visible = false;
                    break;
                case "Panel3":
                    Panel1.Visible = false;
                    Panel2.Visible = false;
                    Panel3.Visible = true;
                    break;
                default:
                    MessageBox.Show("Perfetto");
                    break;

Anticipatamente ringrazio e fiducioso del gradito aiuto, saluto.
Domenico.
 
Non ho capito che problema/errore ti dà quel codice, forse l'uso di ComboBox (nome della classe) al posto del nome della ComboBox (es. comboBox1)?

Puoi usare questa variante più minimale, assumendo che gli item della combobox sono nell'ordine crescente dell'array puoi usare la proprietà SelectedIndex al posto di usare il nome e usare un ciclo for per impostare la visibilità:

C#:
var panels = new Panel[] { Panel1, Panel2, Panel3 };
int index = comboBox1.SelectedIndex;
for (int i = 0; i < panels.Length; i++)
    panels[i].Visible = (index == i);