Announcement

Collapse
No announcement yet.

Probleme mit VS08 und automatisiertem Eventhandling!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit VS08 und automatisiertem Eventhandling!

    Hallo Leute.

    Im VS08 wird beim Doppelklick auf eine textBox ein textchanged Event erzeugt.
    Ich möchte allerding ein MouseclickEvent verwenden.

    Das ist ja alles kein Problem, ich schreibe die gewünschten passagen einfach um.

    Wenn ich mein Projekt jetzt allerding ein paar mal kompiliere so ändert VS das ganze nach einiger Zeit wieder auch textChanged um.

    Habt ihr da ne idee warum dies zustande kommt ?!

    Liebe Grüße, Nicholas!

  • #2
    Wenn du meinst du hast eine eigene Textbox abgeleitet und dieser per DefaultEvent Attribut ein anderes Standard Event verpasst dann sollte sich das Verhalten deiner Textbox nicht auf einmal ändern.

    Das ist ja alles kein Problem, ich schreibe die gewünschten passagen einfach um.

    Wenn ich mein Projekt jetzt allerding ein paar mal kompiliere so ändert VS das ganze nach einiger Zeit wieder auch textChanged um.
    Aber wie soll dir jemand sagen was bei dir falsch läuft wenn du verheimlichst was du denn gemacht hast

    Comment


    • #3
      Aus

      this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged_1);

      mache ich

      this.textBox2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.textBo x2_TextChanged_1);


      Das funktioniert auch soweit, aber halt nur ein paar compiling vorgänge!

      Comment


      • #4
        Hallo Nicholas,

        im Code müssen mehrere Sachen zusammenspielen. Zum einen muss der EventHandler selbst definiert werden, das geschieht eigentlich immer in "deinem" Teil der partial class. Außerdem muss der EventHandler bei dem entsprechenden Control und Ereignis registriert werden; das geschieht häufig über den Designer und steht dann im Designer-Teil der partial class. Automatisch (also mit Doppel-Click) wird, wie Ralf sagt, das Standardereignis registriert und vorbereitet, und das ist nunmal sehr oft das Click-Ereignis.

        Wenn du ein anderes Ereignis haben willst, dann musst du so vorgehen:
        • Markiere im Designer das gewünschte Control (kein Doppel-Click, sondern ein einfacher!).
        • Öffne die dazugehörigen Eigenschaften.
        • Wähle in der Titelleiste den Button mit dem Blitz, das wechselt zur Auswahl der Ereignisse.
        • Wähle dort das gewünschte Ereignis, zum Beispiel ein MouseClick.

        Auf diese Weise bekommst du den Rumpf für dieses Ereignis.

        Dieser Weg ist auch deshalb zu empfehlen, damit die richtigen EventArgs eingetragen werden - nämlich die MouseEventArgs. Wenn du das nicht beachtest, dann ist es kein Wunder, dass der Designer durcheinander kommt und "deine" Methode wieder als Click-Event interpretiert. (Ich wundere mich sowieso, dass der Compiler deine Änderung akzeptiert.)

        Ich empfehle dir auch dringend, in der Designer.cs nachzuschauen, wie der Designer den Code aufbaut. Jürgen

        Comment


        • #5
          Okay danke dir!
          Bin recht neu im VS, wusste diese Option nicht.

          Vielen Dank!

          Comment

          Working...
          X