2016-11-09 2 views
1

Ich bin wirklich neu in C# und ich mache diese Kursarbeit, die über eine Kellner-App mit Visual Studio.Ändern Sie die Schaltfläche Farbe aus anderen Formular

Der Benutzer drückt auf die Nummer des Sitzes, der die Taste ist, die ich ändern möchte, und öffnet ein neues Formular, um die Bestellung zu platzieren, wo der Benutzer Mahlzeiten auswählt und die Bestellung abschickt. Nach der Einreichung möchte ich, dass die Sitzfarbe auf dem Hauptformular zu gelb wechselt, was anzeigt, dass die Bestellung auf dieser Sitzplatznummer platziert wurde.

Hier ist, wie der Sitz-Taste in der Hauptform sieht

public void button_clicked(object sender,EventArgs e) 
{ 
    button seatButton = (Button)sender; 
    string seat = seatButton.text; 
    placeOrder po = new placeOrder(seat); 
    po.showDialog(); 
} 

und hier ist, wie der Bestellbutton im Bestellformular submit sieht

private void submitOrder_clicked(object sender,EventArgs e) 
{ 
    if (listBoxMeals.Items.Count != 0) 
     { 
      alertbox.text = "You have placed your order successfully"; 

      // how to change seat button colour ? 
     } 
    else 
     { 
      alertbox.text = "Your meals list is empty"; 
     } 
} 

here is a picture of the forms

+0

Und was ist? – mybirthname

+0

Ich kann keinen Weg finden, das zu tun – inzo

+2

Sie müssen die Schaltfläche als Parameter an das andere Formular übergeben. Oder verwenden Sie das Ergebnis von 'ShowDialog()'. – SLaks

Antwort

1

Sie können es tun auf diese Weise:

  1. Ändern Sie die Sichtbarkeit der Schaltfläche in Public in frmMain.

  2. Im submitOrder_clicked() Fall frmChild1 tun:

    (this.MdiParent as frmMain).btnChild.BackColor="RequiredColor"; 
    
+0

Wofür steht' btnChild'? ist es das 'button_clicked func'? – inzo

+0

btnChild ist der Name der Schaltfläche, die Sie ändern möchten. –

0

Sie gehen diese für einen mehr als Taste Unter der Annahme, verwenden Sie einen statischen Verweis auf die Schaltfläche erstellen, können Sie einfach geklickt.

public static Button CurrentButton; 
public void button_clicked(object sender,EventArgs e) 
{ 
    button seatButton = (Button)sender; 
    string seat = seatButton.text; 
    placeOrder po = new placeOrder(seat); 
    CurrentButton = button; 
    po.showDialog(); 
} 

Dann fügen Sie einfach die folgende Zeile, wo Sie die Schaltfläche Farbe ändern möchten: das Problem

MainForm.CurrentButton.BackColor = Color.Yellow; 
Verwandte Themen