2016-07-27 2 views
-3

Итак, я пытаюсь проверить, нажата ли кнопка на панели. Это значит, чтобы потом зарезервировать место на этой кнопке, если на нем нет никого другого. Я продолжаю получать ошибку «панель» не содержит определения для etc..etc.Проверка, была ли нажата кнопка на панели

public void DisplayReservations(String[] seating) 
    { 
     pnlBox.Controls.Clear(); 

     int startTop = 10; 
     int startLeft = 10; 

     for (int seat = 0; seat <= seating.GetUpperBound(0); seat++) 
     { 
      Button newButton = new Button(); 
      this.Controls.Add(newButton); 
      newButton.Text = ("Seat: " + (seat + 1) + " " + seating[seat]); 
      newButton.Location = new System.Drawing.Point(startTop, startLeft + (seat * 30)); 
      newButton.Click += AButton_Click; 
      pnlBox.Controls.Add(newButton); 
     } 
    } 

    private void pictureBox1_Click(object sender, EventArgs e) 
    { 

    } 

    private void radDenver_CheckedChanged(object sender, EventArgs e) 
    { 


     piclogo.Load("Cessna.jpg"); 
     lblFlightInfoOut.Text = ""; 
     lblStatusOut.Text = ""; 
     //show the flight info 

     lblFlightInfoOut.Text = flight1.FlightInfo(); 


     string[] seatChart1 = flight1.GetReservationList(); 

     if (flight1.IsFull() == false) 
     { 

      DisplayReservations(seatChart1); 
     } 
     else 
     { 
      DisplayReservations(seatChart1); 
      lblStatusOut.Text = "Flight " + flight2.Plane + " to " + flight1.Destination + " Is Full"; 
     } 
    } 

    private void radKC_CheckedChanged(object sender, EventArgs e) 
    { 
     piclogo.Load("Piper.jpg"); 
     lblStatusOut.Text = ""; 
     lblFlightInfoOut.Text = ""; 

     //show the flight info 

     lblFlightInfoOut.Text = flight2.FlightInfo(); 

     string[] seatChart2 = flight2.GetReservationList(); 

     if (flight2.IsFull() == false) 
     { 

      DisplayReservations(seatChart2); 
     } 
     else 
     { 
      DisplayReservations(seatChart2); 
      lblStatusOut.Text = "Flight " + flight2.Plane + " to " + flight2.Destination + " Is Full"; 
     } 


    } 

    private void btnNameSubmit_Click(object sender, EventArgs e) 
    { 
     string name = ""; 
     int seatNum; 
     if (CheckText(txtName.Text) == true) 
     { 
      name = txtName.Text; 


      if (radDenver.Checked == true) 
      { 
       if (ValidSelect(pnlBox.SelectedIndex) == true) 
       { 
        seatNum = pnlBox.SelectedIndex; 
        if (flight1.MakeReservation(name, seatNum) == true) 
        { 
         lblStatusOut.Text = "Seat " + (seatNum + 1) + " is now Reserved for " + name; 
         DisplayReservations(flight1.GetReservationList()); 
        } 
        else 
        { 
         lblStatusOut.Text = "Sorry " + name + " Seat " + (seatNum + 1) + " is Taken"; 
        } 
       } 

      } 
      else if (radKC.Checked == true) 
      { 
       if (ValidSelect(pnlBox.SelectedIndex) == true) 
       { 
        seatNum = pnlBox.SelectedIndex; 
        if (flight2.MakeReservation(name, seatNum) == true) 
        { 
         lblStatusOut.Text = "Seat " + (seatNum + 1) + " is now Reserved for " + name; 
         DisplayReservations(flight2.GetReservationList()); 
        } 
        else 
        { 
         lblStatusOut.Text = "Sorry " + name + " Seat " + (seatNum + 1) + " is Taken"; 
        } 
       } 
      } 
      else 
      { 
       lblStatusOut.Text = "Please Select a destination at Step 1"; 
      } 
     } 
    } 


    private bool ValidSelect(int SelectedIndex) 
    { 
     if (pnlBox.AButton_Click == false) 
     { 
      lblStatusOut.Text = "Please Choose a seat from the List"; 
      return false; 
     } 
     return true; 
    } 
+3

Что? Где вы получаете ошибку? Фактическая вещь, которую ищет компилятор и жалуется, которую вы бесполезно заменили на «etc..etc». также является ключевым элементом. – itsme86

+0

Прошу прощения, это мой первый пост. это путь вниз по методу validSelect.вся ошибка читается «Панель» не содержит определения для «AButton_Click», и никакой метод расширения «AButton_Click», принимающий первый аргумент типа «Панель», не может быть найден (вам не хватает директивы использования или ссылки на сборку?) – Jarry

+0

Ранее в коде вы используете 'AButton_Click' в качестве обработчика события' Click'. Что заставляет вас думать, что объект 'pnlBox' должен иметь одноименный член? Что заставляет вас думать, что член должен иметь возможность рассматриваться как «bool»? Пожалуйста, предоставьте хороший [mcve], который четко показывает, что вы пробовали, и четко объясните, какие сообщения об ошибках вы получите, что вы пытались исправить, и что конкретно вам нужно. –

ответ

0

В верхней части кода в вашей функции с именем DisplayReservations я заметил, что функция AButton_Click устанавливаются как обожженное событие при нажатии на кнопку внутри панели:

newButton.Click += AButton_Click; 

Причина, почему вы получите ошибка вниз в функции ValidSelect из-за следующую строку:

if (pnlBox.AButton_Click == false) 

Когда мы используем «точки», мы хотим получить доступ что-то ин идеал объекта. И как мы видим в верхней части вашего кода, AButton_Click - это еще одна функция вашего кода, а не часть вашей панели (pnlBox). Функция AButton_Click должен быть уволен, как этот

if (AButton_Click(null, EventArgs.Empty) == false) 

Обычно функция событиечрезвычайной кнопки будет выглядеть следующим образом:

private void AButton_Click(object sender, EventArgs e) 

И тогда вам придется ввести отправителя и EventArgs при вызове функции в if-statement.

НО! Даже тогда я считаю, что вы что-то неправильно поняли. Вы пытаетесь определить, нажата ли кнопка с функцией AButton_Click, когда нажата кнопка click?

Если это так, это не так. Вы не можете обнаружить это таким образом. Вы пытаетесь определить, нажата ли кнопка на панели, нажав кнопку btnNameSubmit, как показано в btnNameSubmit_Click. Это не имеет смысла, если вы спросите меня: D. Кроме того, тип возврата AButton_Click, вероятно, void. Таким образом, вы не можете получить false из функции, если вызываете ее. Поэтому использование его в if-statement недействительно.

я могу дать лучшее решение, если вы скажете мне некоторые вещи я неуверен:

  1. Что делать кнопки при нажатии? Каков код за AButton_Click?

  2. Какова цель звонка ValidSelect в вашей функции btnNameSubmit_Click?

  3. Если вы в ValidSelect проверяет, нажата ли кнопка pnlBox. Как вы можете нажать кнопку btnNameSubmit?

Надеюсь, мои объяснения до сих пор понятны. Когда я узнаю больше, я отредактирую свой ответ и добавлю дополнительную информацию.

+0

Я вижу вашу точку зрения и меняю некоторые вещи, чтобы увидеть, могу ли я понять это сам. Спасибо за это внешнее мнение, это имеет больше смысла, чем то, что я изначально пытался сделать. Скорее всего, мне все равно может понадобиться помощь, поскольку я новичок в этом языке. – Jarry

+0

Беспокойство. Просто спросите, если нужно. Хотя, FYI, это 02:40 утра у меня, поэтому я, вероятно, сплю к этому времени. Я отвечу, когда проснусь: D – MasterXD

Смежные вопросы