VisualStudio verliert Handles-Anweisung

  • VB.NET

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

    VisualStudio verliert Handles-Anweisung

    Hallo zusammen,

    da ich nicht so genau weiß, wo ich diesen Beitrag hin machen soll und auch kein Unterforum gefunden habe, was mir passend erschien, nehme ich mal das Off Topic.

    Kurz zu mir, ich bin in der IT tätig, meistens in der Administration und im Servicedesk, habe mal vor langer Zeit einen kleinen Einfürhungskurs ins Programmieren und einiges mit Scripting zu gehabt. Die Grundsätze sind mir also so weit klar, objektorientiert ist nicht ganz neu, ich hab halt keine Erfahrung und Übung.

    Jetzt habe ich das Problem, dass ich eine Benutzeroberfläche erstellen möchte, die in eine vorhandene SQLite Datenbank die Datensätze ausliest, neue Spalten hinzufügt und die vorhandenen Einträge gegebenenfalls verändert.

    Das wollte ich mit VB lösen und mich auf dem Weg gleich in die Programmierung einarbeiten. Deswegen habe ich mir Visual Studio 2022 herunter geladen, mir ein Buch gekauft und angefangen, mich damit zu beschäftigen. Nach den ersten Beispielen ist mir aufgefallen, dass ich das Projekt zwar speicehrn kann, bein neu Öffnen, jedoch fehlt immer ein Teil des Programm Codes:
    Beispiel:
    Ich baue ein Formular, füge dort einen Ende Button ein, der das Programm einfach nur beendet:

    Quellcode

    1. 'Beenden des Programmes
    2. Private Sub CmdEnde_Click(sender As Object, e As EventArgs) Handles CmdEnde.Click
    3. Close()
    4. End Sub


    Das funktioniert auch gut, speicehre ich da Projekt jedoch und öffne es zu einem späteren Zeitpunkt, sieht es so aus:

    Quellcode

    1. 'Beenden des Programmes
    2. Private Sub CmdEnde_Click(sender As Object, e As EventArgs)
    3. Close()
    4. End Sub


    Es fehlt der Teil: Handles CmdEnde.Click und damit die Funktionalität, das Programm zu beenden, oder ws auch immer das Handle machen soll.
    Das passiert auch bei anderen Elementen. Buttons, Radiobutton, usw.

    Es fallen immer die Handels raus, ich kann nicht nachvollziehen warum, vor allem, weil die Handes manchmal drin bleiben und erst bei einem späteren Start verschwinden. Es sollte doch möglich sein, das Programm zu starten, also mit dem Grünen Pfeil in der Werkzeugleiste, ohne gleich alles fertig zu complieren, damit die Funktionalität geprüft werden kann, ohne dass ich bei der Weiterentwicklung dann wieder prüfen muss, ob die Handles fehlen oder nicht. Und warum ändert VB Studio überhaupt meinen Code? Da kann man sich ja gar nicht darauf verlassen, dass das Programm, welches man geschrieben hat, auch das Programm ist, welches man fertig gestellt hat.

    Gibt es da eine Einstellung, ist das ein VB Studio Problem, könnte das an der aktuellen Version von Win 11 liegen?

    Hoffentlich kann mir da jemand helfen, bei den Buchbeispielen ist das nicht so tragisch, aber ich hab ja mehr vor und dann wirds zum Problem.

    Verschoben. (Ich hab auch mal den Titel etwas spezifischer gemacht) ~Thunderbolt

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

    @VB-NochKeinProfi Willkommen im Forum.
    Bewegst Du Code zwischen mehreren Formen?
    Wenn Du einen Eventhandler mit Handles-Anweisung per Zwischenablage kopierst, kann diese verloren gehen.
    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!
    Auch von mir: Willkommen im Forum.
    Das komische Verhalten passiert zwar, wenn man Controls mit ververdrahteten EventHandlern ausschneidet und einfügt, aber nicht beim schließen und speichern. Wenn das reproduzierbar passiert, erstell eine Datei mit EventHandler, speichere, öffne die Datei im Datei-Explorer, schau nach, ob das Handles noch mit drinsteht. Wenn ja: Datei im Explorer schließen, Visual Studio schließen, öffne dann in Visual Studio Dein Projekt und schau dann nochmal in VS und im Dateiexplorer.
    Nach welchem Schritt wird der Code verändert?
    Welche VS-Version hast Du und sind alle VS-Updates installiert?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Das passiert immer beim Ausschneiden und Einfügen von Controls.
    Angenommen man hat einen Button mit Eventhandler der Form

    VB.NET-Quellcode

    1. Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. End Sub


    Wenn man dieses Control nun kopiert und einfügt, dann erhält man einen Button2 ohne Behandlung, sofern man keinen Doppelklick auf den neuen Button ausführt.

    Wenn man nun den vorherigen Button "Button1" löscht, dann wird bei der Gelegenheit auch das "Handles" mit entsorgt. Ohne Warnung, ohne alles.

    VB.NET-Quellcode

    1. Sub Button1_Click(sender As Object, e As EventArgs)
    2. End Sub


    Eigentlich sollte man beim Löschen des Controls eine Warnung erhalten, dass aktuell etwas verknüpft ist und dann verloren geht. Man kann nicht alles haben.
    An manchen Tagen gibt es zu allem Überfluss auch noch Ärger!
    Hallo,

    das ist ein bereits bekanntes Problem und wurde in VS 17.6.0 Preview 2 gehoben:
    developercommunity.visualstudi…t-from-the-objec/10291096

    Arbeitest Du mit .Net 7?
    Das entfernen der Handler-Anweisungen passiert offenbar auch nur bei vom Designer generierten Anweisungen und immer dann wenn man ein Objekt geändert, entfernt oder hinzugefügt hat, also der Designer Code generieren musste.
    Mit hat das so extrem genervt das ich das gleiche Projekt nochmal mit .Net 4.8 erzeugt habe. Da passiert das offenbar gar nicht.

    Edit:
    In Version 17.5.3 ist der Fehler wohl auch behoben wurden:
    learn.microsoft.com/en-us/visu…2022/release-notes#17.5.3

    Für alle die nicht auf eine Preview Version gehen wollen.

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

    Hallo zusammen und danke für eure Tips. Hatte leider die letzte Woche iniges um die Ohren, daher jetzt erst die verspätete Antwort.
    Bei einigen Tips, wie das Kopieren, oder Ausschneiden kann ich es verstehen, das habe ich auch schon herausgefunden. Ich denke aber, dass es tatsächlich an der Version liegt, aktuell habe ich noch die Version 17.5.1. und jetzt wird mit die Version 17.5.3 zum Update angeboten.
    Ich hoffe mal, dass sich damit das Problem erledigt, aktuell baue ich ja nur ein paar Beispielprgramme nach, damit ich das überhaupt mal lerne :)
    Nochmals danke für eure Tips und hoffe, dass ich euch in Zukunft weiter fragen kann.