Meddelande

Minska
No announcement yet.

Listbox input ändras inte. Visar bara det som finns i första case i switch satsen

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Listbox input ändras inte. Visar bara det som finns i första case i switch satsen

    Kan någon tala om för mig vad det är för fel. Jag vill kunna byta innehåll i listboxen lstReservations genom att ändra input i comboxboxen. Där har jag använt enum DisplayOptions
    Men när jag kör koden så får jag bara (i listboxen) input för enum All och inte enum Reserved och Vacant. Vad gör jag för fel?

    Kod:
    namespace Assignm4a
    {
        public partial class MainForm : Form
        {
            public const int reserved = 5;
            public const int vacant = 15;
            public const int rows = 10;
            public const int cols = 5;       
           
            public const int totNumOfSeats = 30;
            public string[,] allSeatsArray = new string[rows, cols];
            public string[] reservedSeatsArray = new string[reserved];
            public string[] vacantSeatsArray = new string[vacant];
                   
            public enum DisplayOptions
            { All, Vacant, Reserved}
                   
            public MainForm()
            {
                InitializeComponent();
                cmbSeats.DataSource = Enum.GetValues(typeof(DisplayOptions));                       
            }
    
            private void MainForm_Load(object sender, EventArgs e)
            {
                    
            }     
    
            private void cmbSeats_SelectedIndexChanged(object sender, EventArgs e)
            {
                lstReservations.Items.Clear();           
                DisplayOptions choice = new DisplayOptions();            
                switch (choice)
                {
                    case DisplayOptions.All:
                        for (int i = 0; i < rows; i++)
                            for (int j = 0; j < cols; j++)
                        {                      
                            string x = Convert.ToString(i);
                            string y = Convert.ToString(j);
                            allSeatsArray[i,j] = "Seat "+ x +":"+ y;
                            lstReservations.Items.Add(allSeatsArray[i,j]);                       
                        }
                        break;                 
                    case DisplayOptions.Reserved:
                        for (int i = 0; i < reserved; i++)
                        {
                            string x = Convert.ToString(i);
                            reservedSeatsArray[i] = x;
                            lstReservations.Items.Add(reservedSeatsArray[i]);
                        }
                        break;
                    case DisplayOptions.Vacant:
                        for (int i = 0; i < vacant; i++)
                        {
                            string x = Convert.ToString(i);
                            vacantSeatsArray[i] = x;
                            lstReservations.Items.Add(vacantSeatsArray[i]);
                        }
                        break;          
                   }
            }
        }
    }
    Last edited by swingman; 2011-05-07, 09:11.

  • #2
    Du instansierar en enum varje gång metoden körs och jag antar att All är det första värdet i din enum? Jag antar att du vill kunna ta ut din enum från något och inte skapa en ny varje gång..
    Aka Mc Fetto Registrerad: 2002-11-26 | Inlägg: 1 999

    Kommentera


    • #3
      Byt ut:
      Kod:
      DisplayOptions choice = new DisplayOptions();
      mot
      Kod:
      DisplayOptions choice = (DisplayOptions)cmbSeats.SelectedItem;
      i funktionen
      Kod:
      private void cmbSeats_SelectedIndexChanged(object sender, EventArgs e)

      Kommentera

      Working...
      X