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
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
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...
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