Menüleiste doppelt in Formular

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von frankseipferd.

    Menüleiste doppelt in Formular

    Hallo,

    ich habe eine Toolstrip-Menüleiste in einem Formular entworfen (Dateianhang Formularentwurf.jpg).

    Beim Ausfürhen der Form erscheint diese plötzlich doppelt (Dateianhang Formular.jpg).

    Weis jemand was das für ein Phänomen ist?

    Danke und Grüße
    Frank
    Bilder
    • Formularentwurf.JPG

      29,41 kB, 795×229, 91 mal angesehen
    • Formular.JPG

      32,52 kB, 794×224, 88 mal angesehen
    Ohne Code ist das Raten ins Blaue.

    Warscheinlich wird der Code zu erstellen des Menus 2x aufgerufen.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    @Schamash Jou.
    @frankseipferd Oder Du hast die Komponente versehentlich kopiert.
    Sieh Dir mal Deine Form im Designer an, da müssten unten zwei ToolStrips liegen, lösche die mit der höheren Nummer im Namen.
    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!

    frankseipferd schrieb:

    Erstellcode des Menüs
    Ich hätte den Hinweis mit dem Designer auch ignoriert. X(
    Die Erstellung von GUI-Elementen passiert in der Prozedur InitializeComponents(), es ist mit Sicherheit nicht an dem, sondern Du hast zwei Komponenten in Deiner GUI.
    Kläre das zuerst.
    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!
    Da ja noch nicht viel in deinem Projekt drin ist lad es doch einfach mal hier hoch.
    Dann kann man es sich mal anschauen.

    Das von die beschriebene Verhalten ist nicht normal und deutet auf einen Fehler im erstellen des Formulars auf.
    Das Menu wird entweder 2x erstellt oder wurde von dir von gund auf 2x hinzugefügt.

    Den Code zu erstellen des Menus findest du, wenn du es nicht selbst gecoded hast im Designer
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Das kannst du schon mal machen, vielleicht auch einfach in nen Spoiler als vb.net Quelltext befür brauchst du kein Dokument erstellen, das schafft der Forumseditor schon :)

    Wenn der doppel Code aber nicht vom Designer kommt, dann muss es so sein das du beim Aufrufen der Form den Code zum erstellen doppelt auslöst.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Schamash schrieb:

    Das kannst du schon mal machen, vielleicht auch einfach in nen Spoiler als vb.net Quelltext befür brauchst du kein Dokument erstellen, das schafft der Forumseditor schon


    Passt leider nicht rein weil es mehr als 50000 Zeichen sind :)

    im Anhang habe ich mal den Form-Code und den Designer-Code als VB-Datei angehängt...
    Dateien
    Hier ist dein Fehler:

    VB.NET-Quellcode

    1. Private Sub frmHauptmenue_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
    2. ' Dieser Aufruf ist für den Designer erforderlich.
    3. InitializeComponent()
    4. End Sub

    Damit rufst du InitializeComponent 2x auf.

    Diesen Aufruf gibt es versteckt nämlicih auch noch. In VB wird der "New" Konstruktor errstellt aber nicht angezeit wenn man ihn nicht selbst aufruft.
    So wie das aussieht hast du dein "New" einfach durch form.shown ersetzt und damit verdoppelt

    VB.NET-Quellcode

    1. Public Sub New()
    2. ' Dieser Aufruf ist für den Designer erforderlich.
    3. InitializeComponent()
    4. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
    5. End Sub
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."