Timer Argument übergeben bei Button_Click

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Timer Argument übergeben bei Button_Click

    Hallo,

    wie kann ich einem Timer bei Drücken verschiedener Buttons ein weiteres Argument übergeben?

    Habe es wie folgt versucht, aber ohne Erfolg:

    C#-Quellcode

    1. private void timerElapsed(object sender, EventArgs e, int index)
    2. {
    3. //Code
    4. }
    5. private void btn1_Click(object sender, EventArgs e)
    6. {
    7. timerMove.Elapsed += ((sender, e) => timerElapsed(sender, e, 3));
    8. }


    Die Fehlermeldung ist folgende:
    Fehler 1 Eine lokale Variable mit dem Namen "sender" kann in diesem Bereich nicht deklariert werden, weil dadurch "sender" eine andere Bedeutung erhalten würde, was bereits im Bereich "übergeordnet oder aktuell" in anderer Bedeutung verwendet wird.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Angry Onion“ ()

    einem Timer kannst du gar nix übergeben.
    Einer Methode kannst du was übergeben, man nennt es Argument oder Parameter.
    Die Methode muss allerdings entsprechend deklariert sein, denn wenn sie keine entsprechenden Argumente erwartet, kann man sie ihr auch nicht übergeben.

    sorry - hab dein Code falsch gelesen.
    hier ist das Problem nur, dass in der anonymen Deklaration auch sender, e auftauchen. Wähle dafür annere Namen, und gut ist.
    Etwa

    C#-Quellcode

    1. private void btnAuf_Click(object sender, EventArgs e)
    2. {
    3. timerMove.Elapsed += ((s, e2) => timerElapsed(s, e2, 3));
    4. }

    naja - vlt. auch wieder nicht, denn ich glaube kaum, dass das timerMove.Elapsed - Event 3 argumente erwartet.
    also trifft mein böser oberlehrerhafter Text von oben glaub doch zu.

    gugge auch Alles über Events

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    hihi - das tutorial lesen :P

    aber erstmal nachfrage: ist der ursprünglich von dir gemeldete Fehler, mit der Variablen "sender", die in dem Bereich kein zweites mal deklariert sein darf, denn nun behoben?

    oh mann - glaub bin schon wieder auffm falschen Dampfer - also nix gesagt.

    Frage nur: wie sieht dein derzeitiger Code aus, und wie lautet die Fehlermeldung?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Das Tutorial habe ich gerade vorgestern gelesen. Stöbere seit Wochen hier im Forum rum und lerne hier und dort und überall dazu :)

    Tatsache, ein umbennen der Variablen hat geholfen! Manchmal sieht man den Wald vor lauter Bäumen nicht.
    Habe ja eine andere Methode genutzt, welche 3 Argumente erwartet.

    Angry Onion schrieb:

    C#-Quellcode

    1. private void timerElapsed(object sender, EventArgs e, int index)
    Welche Bedeutung hätten denn die Argumente sender und e? Die wären ja obsolete.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Angry Onion Wenn void timerElapsed() Dein Code ist, schmeiß die Argumente einfach raus und feddich. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!