Visual Basic 2010 Dynamisch erstellte Controls durch contextmenustrip löschen

  • VB.NET

Es gibt 32 Antworten in diesem Thema. Der letzte Beitrag () ist von ClonkAndre.

    Achso ja aber wie kann ich das denn aufrufen? AddressOf DeleteControl ist ja klar doch das Programm stürtzt mit einem Fehler ab wenn ich auf löschen klicke b.z.w. kann noch nicht mal's starten weil DeleteControl Blau unterstrichen wird mit diesem Code:

    VB.NET-Quellcode

    1. Private Sub DeleteControl(c As Control)
    2. If c.Parent IsNot Nothing Then
    3. Dim host As Control = CType(c.Parent, Control)
    4. host.Controls.Remove(c)
    5. c.Dispose()
    6. End If
    7. End Sub
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!

    ClonkAndre schrieb:

    wie kann ich das denn aufrufen?
    Siehe Post #12.
    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!
    Ja das gibt schon mal kein Fehler mehr im Code aus doch wenn ich dann auf "Element Löschen" drücke, kommt der Fehler aus Post #13

    //Edit

    Also ich weiß zwar nicht wie das genau geht, aber echt, das kann doch nicht so kompliziert sein oder?

    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!

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

    ClonkAndre schrieb:

    das kann doch nicht so kompliziert sein oder?
    Fang an und setz einen Haltepunkt rein. Debuggen, Fehler finden und beseitigen
    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!

    RodFromGermany schrieb:

    Fang an und setz einen Haltepunkt rein.

    Naja wenn ich in meiner Fehlerzeile Dim c As Control = DirectCast(sender, Control) ein Haltepunkt setze und die Zeile überspringe, dann bekomme ich folgenden Fehler (Bild im Anhand) aber dieser Fehler ist ja selbst verständlich.
    Och mannooo das ist Hart :/
    Bilder
    • fehler3.png

      45,76 kB, 776×326, 79 mal angesehen
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!

    ClonkAndre schrieb:

    ein Haltepunkt setze und die Zeile überspringe

    Hat jemand was von überspringen gesagt? @RodFromGermany hat dir doch den Link zu seinem Top Tutorial gepostet, richtig?
    Jetzt setzt du dich hin (in der Zeit zwischen deinem letzten Beitrag und jetzt wärst du vermutlich bereits DebugProfi) und verinnerlichst dieses Tutorial.
    Damit meine ich jetzt nicht "ok, gelesen - jetzt passt und gut" sondern das du es liest, versuchst zu verstehen und es gleich an deinem aktuellen Problem anwendest um das gelesene gleich zu verinnerlichen.
    Du wirst sehen, ab dann geht alles gleich viel leichter von der Hand und du bist in der Lage selbst Fehler zu finden und dein Programm nachzuvollziehen. Super sache!
    Du machst damit nicht mal uns einen Gefallen, sondern DIR.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @Nofear23m Jou.
    @ClonkAndre Ich habe das Gefühl, Du weißt gar nicht, was Dein Code machen soll, weil Du iwelchen fremden Code bei Dir reinkopierst und Dir keinen Kopf machst, was da abläuft.
    Klar, jeder, der der Dir hier helfen will, hat seine Sicht auf den Ausschnitt des Teilproblems.
    Du musst Dich entscheiden, ob Du dann ein Snippet übernimmst, und wenn, musst Du es vollständig verstehen, sonst treibst Du den Teufel mit dem Beelzebub aus.
    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!
    @RodFromGermany
    Also echt.. Ich bin im moment 15 Jahre alt, ich programmiere jetzt schon seit ungefähr 2 Jahren aber sowas habe ich zuvor noch nie gemacht. Aber bitte, hab nicht das Gefühl das ich nicht verstehe was dieser Code überhaupt machen soll, ich hab da schon ne Ahnung was der machen soll.

    Aber wirklich, ich kopiere zwar diesen Code in Projekt rein, aber es ist echt nicht so als ob ich einfach Copy & Paste mache und fertig ich mach mir schon Gedanken darüber...
    Anfangs dachte ich noch garnicht das dass Löschen von Dynamischen Steuerelementen wirklich so schwer sei, es ist warscheinlich auch nicht wirklich schwer aber sowas habe ich wie gesagt vorher auch noch nie gemacht.
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!
    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!
    Hallo

    ClonkAndre schrieb:

    ich kopiere zwar diesen Code in Projekt rein, aber es ist echt nicht so als ob ich einfach Copy & Paste mache

    Ein leichter wiederspruch.
    Echt ein guter Tipp von mir (ich spreche aus Erfahrung). Kopiere NICHTS. Ich weis, es klingt anfangs echt doof, aber auch wenn du du lesen des Codes genau weist was dieser macht, du sprägst dir viel besser die vorgehensweise und die Prozedur/Property -Namen ein wenn du den Code runtertipst. Durch die schöne Intellisense deine IDE ist dies auch gar nicht mal so viel Schreibarbeit wie du jetzt vieleicht glauben magst.
    Du hast in deinen Beiträgen bereits viel mehr geschrieben.
    Nur als Tipp, ob du ihn beherzigst oder nicht überlassen ich jetzt dir und deinem willen zu lernen.

    Schönes restweekend
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Ochhh leuteeee...

    Wie doof bin ich eigentlich?
    Es war sowas von Easy!

    Hier mein funktionierender Code:

    VB.NET-Quellcode

    1. Private Sub DeleteControl(sender As Object, e As EventArgs)
    2. Dim c As Control = DirectCast(DirectCast(sender, ToolStripMenuItem).Owner, ContextMenuStrip).SourceControl
    3. Panel1.Controls.Remove(c)
    4. End Sub


    Und ich hänge an zwei verdammten Zeilen 2 Tage oder so rum :/
    Danke an euch das Ihr mir geholfen habt :D :thumbup:

    //Edit
    Das nächste mal überlege ich mehr als direkt ein Thread zu eröffnen :)

    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!