Ereignis löschen

  • C#

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

    Ereignis löschen

    Hallo,

    wenn ich in C# ein Ereignis lösche, zur Entwurfszeit (z.bsp.: Form Load ) dann bekomm ich eine Fehlermeldung beim Debuggen.
    Wie lösche ich das richtig?
    Den Eventhandler im Desingner zu löschen kommt mir irgendwie falsch vor,
    weil Visual Studio im kommentar des Desingners folgendes stehen hat: "Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden."

    Fragen gehören ins Forum "Programmieren"!
    - Solaris

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

    Jou.
    @Amro Du bekommst einen Compilerfehler, er sollte die betreffende Zeile anzeigen, lösch diese Zeile, sie sieht etwa so aus:

    C#-Quellcode

    1. this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
    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!
    Ok ,wenn ich das bedenkenlos so machen kann, dann werde ich das Problem künftig auf diesen weg lösen.
    Arbeite das erstemal mal mit C# und dann gleich so ein gemeiner Fehler :D .
    Mit Visual Basic hatte ich das Problem nicht.

    Will auf C# umsteigen da man immer wieder liest und hört das die meisten früher
    oder später sich für diese Sprache entscheiden.
    Wo bei ehrlich gesagt VB mir leichter fällt.

    Sollte ich noch mehr für den ersten Umgang mit C# wissen?
    Wäre für weitere Tipps dankbar.
    Was auch etwas nervt ist jedesmal die geschweiften Klammern zu tippen.
    Gibt es dafür vielleicht ne Tastenkombi oder so?

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

    Naja die Kombi ist Alt Gr und 7 bzw 0 :D
    Du musst nich umsteigen, warum auch. Hinter beiden Sprachen verbirgt sich IL, und somit auch (fast) gleich Möglichkeiten.
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais

    Amro schrieb:

    Mit Visual Basic hatte ich das Problem nicht.
    Klar.
    Bei VB wird der Ereignishandler mit dem Befehlsanhang Handles ButtonX.Click gemacht, das ist halt anders organisiert als in C#.
    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!
    @RFG
    Ah Ok. Jetzt hab ichs verstanden

    @TP
    Werde warscheinlich erstmal bei VB bleiben bis das mit OOP und den Net Framework einigemaßen sitzt
    Ich denke aber das es nicht schadet ab und zu neben her einiges in C# zu machen da ich der Meinung bin, das C#
    es einen wesentlich vereinfacht, auch Code aus anderen Sprachen zu verstehen und evt auch anzuwenden.

    Danke euch beiden

    Amro schrieb:

    nicht nötig
    Basic hat eine sagen wir seeeeeeehr verworrene Vergangenheit.
    Da konntest Du im Prinzip hinschreiben was Du wolltest, es hat kompiliert (ein Programm, das kompiliert, muss noch lange nicht funktionieren).
    3 wesentliche Sachverhalte (die Liste ist bestimmt nicht vollständig, das ist aber bei den zig Basic-Versionen auch kein Wunder):
    1. Es gab Basic-Versionen, in denen fingen Arrays mit dem Index 0 an und es gab Versionen, da fingen Arrays mit dem Index 1 an.
      Irgendwann war das schaltbar: Option Base 0 oder Option Base 1.
    2. Es mussten keine Variablen deklariert werden, Variablen wurden angelegt bei der 1. Verwendung, und dann dem Typ der Verwendung entsprechend.
      Da konnte es sein, dass eine Variable vom Typ Integer angelegt wurde, die Du aber in Long oder Double brauchtest, da musstest Du sie halt explizit deklarieren.
      Mit dem damaligen Option Strict On wurdest Du gezwungen, alle Variablen zu deklarieren.
      Wenn Du da in VB3 schriebst:

      Visual Basic-Quellcode

      1. Dim a, b As Integer
      hat allerdings die Zuweisung b = "bla" funktioniert, den nicht mit Typ deklarierte Variablen (hier: a) wurden vom Typ Variant angelegt, das ist so ein Excel-Zellen-kompatibler Typ, wo man alles (auch Arrays) reinpacken konnte.
    3. Aufruf von Dialogen.
      Früher ( :D ) war es nicht möglich, gleichzeitig von einem Dialog 2 Instanzen (egal, ob modal oder nicht) anzeigen zu lassen, denn mit Form2.Show() bzw. Form2.ShowModal() geht das nicht, auch nicht unter VB.NET.
    Um nun "ordentlich" mit VB.NET programmieren zu können, wurde alles, was früher ging, abschaltbar gemacht, mehr oder weniger tricky.
    Und weil die (alte) VB-Fan-Gemeinde offensicht doch noch sehr groß und mächtig ist, sind die Default-Einstellungen halt voll auf VB6-Kompatibilität ausgelegt.
    Deswegen ärgern wir uns hier sehr viel mit VB.NET-Off-Programmen rum.
    -----
    C / C++ / C# war zu jeder Zeit sehr viel restriktiver, deswegen sind dort solch Vorkehrungen / Nachbesserungen nicht erforderlich.
    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!