Bool-Wert für Aufrufende Methode
-
Danke erst mal für deine schnelle Antwort.
Nein, ich denke Du hast es schon richtig verstanden.
Du meinst also ich sollte eine überladene Methode erstellen? Das ist sicherlich möglich und würde sicher auch klappen. Ich habe nur das Problem, dass die Methode die ich aufrufen möchte, eine WindowsForms Methode ist und die ist nicht so einfach zu überladen, zumindest für mich Anfänger.
Vieleicht hat jemand noch eine Möglichkeit die ihm einfällt? Ich bin für jede Antwort dankbar.
-
Was meinst du mit WindowsForms Funktionen?
-
Du meinst du hast z.B. ne Mausklick-Funktion und möchtest wissen wer die Mausklick-Funktion aufgerufen hat (z.B. ausgelöst durch ne Windows-Message oder von dir selbst) ?
-
Hi,
ja ich meine genau das was greeky geschrieben hat. Habe mich da wohl ein bisschen falsch ausgedrückt, aber greeky hat es genau richtig verstanden.
-
Hast du die selbe Methode an mehreren events angemeldet? Falls ja, melde unterschiedliche Methoden an, die können dann die Hauptmethode mit Parametern aufrufen. Falls das nicht das Problem ist, dann zeig mal etwas Code.
-
Du hast doch den sender als Parameter drin. Der hat dir den Mausklick ausgelöst. Ist bei jedem Eventhandler im Windows Forms Bereich so.
-
private void wahlRechteck_CheckedChanged(object sender, EventArgs e) {void buttonBerechnen_Click(sender, e)} private void wahlDreieck_CheckedChanged(object sender, EventArgs e) {void buttonBerechnen_Click(sender, e)} private void buttonBerechnen_Click(object sender, EventArgs e) { if ([b]der Aufruf kommt von wahlRechteck...[/b] :D { R.RechteckBreite = (double.Parse(WertBreite.Text)); R.RechteckHöhe = (double.Parse(WertHöhe.Text)); } else if ([b]der Aufruf kommt von wahlDreieck...[/b]) :D { R.Dreieck = double.Parse(WertSeite.Text)); R.Dreieck = double.Parse(WertHöhe.Text)); } }
Ich hoffe man kann erkennen, was ich da will. Wie gesagt ich bin noch Anfänger (besonders in Windows Forms) und deshalb ist das vieleicht nicht logisch was ich da versuche, aber dann sagt einfach wie Ihr es lösen würdet. Wie schon gesagt bin für alles offen.
-
if(sender is wahlRechteck) { ... } else if(sender is wahlDreieck) { ... }
-
Danke für die Antwort. Diese Lösung finde ich für mich, perfekt. Leider, geht sie bei mir nicht. Ich bekomme einen Compilerfehler
Fehler 1 "WindowsApplication1.Form1.buttonBerechnen_Click(object, System.EventArgs)" ist ein(e) "Methode", wird aber wie ein(e) "Typ" verwendet.
Was habe ich falsch gemacht.
if (sender is buttonBerechnen_Click) { textBoxErgebnis.Text = (R.RechteckFläche).ToString(); } else if (...) {...}
-
Machs so wie ~Th gesagt hat. Du prüfst ob sender die Referenz von dem Button ist den du willst:
da sender aber nen object ist müsstest du glaub ich noch casten, also sowas:
if(sender as Button) == wahlRechteck
bzw.
if(sender as Button) == wahlDreieck
-
ich glaub der fehler ligt auch noch in der tatsache das "sender" nicht buttonBerechnen_Click sein kann da dies die methode ist. sender ist immer das objekt das das event abfeuert, sprich sender ist der button(buttonname) z.b.
-
Danke,
an alle die mir geholfen haben mein (wahrscheinlich nicht ganz so bedeutendes Probelem) zu lösen.
Habe es jetzt so gelöst wie es von ~Th gezeigt worden ist und von Zwergli für mich angepasst worden ist. Habe dann auch den Fehler den Jack30lena angesprochen hat beseitigt.
Nur musste ich die Klammer nach "wahlRechteck" bzw. "wahlDreieck" setzen. Ansonsten kann ich mich nur für Eure Hife bedanken.