Laden...

Form mit 3 Buttons und Rückgabe-Wert je nach Klick

Erstellt von manuhanto vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.730 Views
M
manuhanto Themenstarter:in
1 Beiträge seit 2010
vor 13 Jahren
Form mit 3 Buttons und Rückgabe-Wert je nach Klick

Hallo,
ich habe jetzt Google komplett durchsucht nach einem Beispiel bin aber nicht fündig geworden. Wahrscheinlich ist meine Frag zu simpel.
Alles was ich erstellen will ist eine DLL/Exe mit einer Form auf der sich 3 Buttons befinden sollen. Nach dem Event Buttonklick soll je nach Button der Wert 1,2 oder 3 zurückgegeben werden. Danach dann close() um die Form zu schliessen.
Buttons und Form habe ich erstellen können aber wie bekomme ich den return-value hin?
Hat mir da jemand ein Beispiel?

Vielen Dank für die Hilfe

U
208 Beiträge seit 2008
vor 13 Jahren

warum genau die werte 1, 2 und 3?

vielleicht suchst du auch eher: Form.ShowDialog und Button.DialogResult

edit: und ansonsten: [FAQ] Kommunikation von 2 Forms

916 Beiträge seit 2008
vor 13 Jahren

Die Frage ist doch wo soll 3 zurück gegeben werden? Soll die Form beim schließen und verlassen einen Wert zurück geben?

Again what learned...

D
216 Beiträge seit 2009
vor 13 Jahren

Der Code deiner Form mit den 3 Buttons sollte ungefähr so aussehen (ungetestet):

partial class Blubb : Form
{
   public enum Buttons
   {
      button1,
      button2,
      button3,
      none
   }

   public static Buttons ShowAndReturnButton()
   {
      Blubb b = new Blubb();
      b.ShowDialog();
      if(b.DialogResult == DialogResult.OK)
         return b.ButtonClicked;
      else
         return Buttons.none;
   }

   public Buttons ButtonClicked
   {
      get;
      private set;
   }

   public Blubb()
   {
      InitializeComponent();
   }

   private void button1_Clicked(object sender, EventArgs e)
   {
      ButtonClicked = Buttons.button1;
      DialogResult = DialogResult.OK;
      this.Close();
   }

   private void button2_Clicked(object sender, EventArgs e)
   {
      ButtonClicked = Buttons.button2;
      DialogResult = DialogResult.OK;
      this.Close();
   }

   private void button3_Clicked(object sender, EventArgs e)
   {
      ButtonClicked = Buttons.button3;
      DialogResult = DialogResult.OK;
      this.Close();
   }
}

und dann in deiner Hauptform folgenden Code um das Ergebnis zu verarbeiten:

switch(Blubb.ShowAndReturnButton())
{
   case Blubb.Buttons.button1:
      MessageBox.Show("Button 1 wurde gedrückt.");
      break;
   case Blubb.Buttons.button2:
      MessageBox.Show("Button 2 wurde gedrückt.");
      break;
   case Blubb.Buttons.button3:
      MessageBox.Show("Button 3 wurde gedrückt.");
      break;
   case Blubb.Buttons.none:
      MessageBox.Show("Es wurde kein Button gedrückt");
      break;
}

Hoffe das ich richtig verstanden habe was du wolltest...

DarthMaim