Controls verschwinden... mal wieder

  • VB.NET

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

    Controls verschwinden... mal wieder

    Huhu,

    Ich hatte schonmal ein Thema dazu eröffnet.

    Siehe hier: [VB 2008] Labels werden nicht angezeigt ?

    Das gleiche ist jetzt wieder aufgetreten. Dieses mal allerdings bei einem MenuStrip bzw seinen Items.

    Man kann die Items zwar im Objektkatalog aufrufen, allerdings bekommt man sie nicht angezeigt. Auch im Designer sind sie vorhanden.


    Das ganze in ein neues, leeres Projekt zu intigrieren hab ich schon versucht, nur hab ich da 3 dutzend Fehler bekommen die Ich ungern alle durchackern würde.

    Hat jemand den erleuchtenden Tipp ? :D

    LG Sky
    //Kommentar
    bei mir war ma ganze form weg Oo mach am besten neues projekt und hau ma designer code rein komisch ich weiß im neues projekt ging der alte designer code^^ und ja dann halt programm code rein und fertig :) bei mir hats hingehauen


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Skybird schrieb:

    Das gleiche ist jetzt wieder aufgetreten.

    Wenn es im Designer vorhanden ist aber während der Ausführung dann werden sie vermutlich nicht (oder falsch) serialisiert.

    Auch wenn Du es bestimmt schon weisst: Serialisert werden Properties / Components / Controls vom DesignerHost in der Form.Designer.vb, Werte entweder auch da oder in der Form.resx von wo sie aus der Designer.VB z.B. mit GetObject abgerufen werden.

    Also liegt die Ursache wohl am ehesten in der Designer.VB: mal kritisch anschauen was der DesignerHost dort so angestellt hat (oder vielleicht gerade nicht(!) und evtl mit dem Debugger auf die Spur kommen ?

    Auf jeden Fall sind das hässliche Probleme, noch ekliger sind allerdings Fehler im Design Mode selber :wacko:

    Nachtrag: wichtig vor dem Rumspielen im Designer-Code den Projektordner vorher zu sichern
    Beim Übeprüfen, ob die Controls überhaupt Visible sind, wurde mir ein False zurückgegeben.

    Leider kann ich diesen zustand nicht ändern :/ ...

    /e: damit meine ich, das ich es per Code und per Eigenschaften im Objektbrowser auf True gestellt habe.
    LG Sky
    //Kommentar

    Skybird schrieb:

    Beim Übeprüfen, ob die Controls überhaupt Visible sind, wurde mir ein False zurückgegeben.

    Die Reihenfolge ist ja so: in der Designer.vb werden die Controls/Components ja deklariert, in InitialiseComponents instanziert und in die entsprechenden Container gestopft.

    Probier mal folgendes; geh in das Form.Loading event, wo die Instanzen ja schon vorliegen müssen und überprüfe dort ob die Controls visible sind und in der entsprechenden Form.Controls Collection auch eingetragen sind. Am einfachsten mit dem Debugger dort Breakpoint setzen und im Direktfenster mit ? ausgeben lassen

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

    Huhu,

    die Items sind schon im Form.Loading-Event nicht visible.

    Es geht jetzt ja um die Items vom Menustrip. Der Menustrip ist vorhanden, allerdings (wird mir auch zurückgegeben) nur mit einem Testitem.

    System.Windows.Forms.MenuStrip, Name: Menü_, Items: 1


    LG Sky
    //Kommentar

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

    Auch huhu, dachte Du wärst schon ins Bett gegangen ;)

    Also dann mal Designer.VB anschauen ( im Projektmappen-Explorer auf alle Dateien anzeigen klicken):

    Für das MenuStrip Item muss vorhanden sein (Name kann abweichen):

    VB.NET-Quellcode

    1. ' Deklaration
    2. Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip
    3. ...
    4. Private Sub InitializeComponent()
    5. ...
    6. ' Instanz anlegen
    7. Me.MenuStrip1 = New System.Windows.Forms.MenuStrip()
    8. ...
    9. ' Konfigurieren und (!) MenuElemente eintragen !!!
    10. Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem1,Me.ToolStripMenuItem2,Me.ToolstripLabel1,.......})

    Was hier nicht eingetragen wird kann auch nicht angezeigt werden.

    Die MenuItems (toolstriplabel, toolstriptext,toolstripmenuitem) müssen alle deklariert sein und konfiguriert werden, z.B.

    VB.NET-Quellcode

    1. 'ToolStripMenuItem1
    2. '
    3. Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1"
    4. Me.ToolStripMenuItem1.Size = New System.Drawing.Size(100, 20)
    5. Me.ToolStripMenuItem1.Text = "Test MenuItem"
    6. Me.ToolStripMenuItem1.Visible = True ' muss nicht da sein, hier darf nur nicht visible=false stehen

    VB.NET-Quellcode

    1. 'Deklaration
    2. 'MenuStrip
    3. Friend WithEvents Menü_ As System.Windows.Forms.MenuStrip
    4. 'Menüpunkte
    5. Friend WithEvents Menü As System.Windows.Forms.ToolStripMenuItem
    6. Friend WithEvents ExtrasToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
    7. Friend WithEvents AktionenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
    8. ... Unterpunkte...
    9. 'Instanzen
    10. 'MenuStrip
    11. Me.Menü_ = New System.Windows.Forms.MenuStrip
    12. 'Menüpunkte
    13. Me.Menü = New System.Windows.Forms.ToolStripMenuItem
    14. Me.AktionenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
    15. Me.ExtrasToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
    16. 'Konfigurieren und eintragen
    17. Me.Menü_.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.RthrhToolStripMenuItem, Me.Menü, Me.AktionenToolStripMenuItem, Me.ExtrasToolStripMenuItem})
    18. 'MenuItem
    19. '
    20. 'AktionenToolStripMenuItem
    21. '
    22. Me.AktionenToolStripMenuItem.Name = "AktionenToolStripMenuItem"
    23. Me.AktionenToolStripMenuItem.Size = New System.Drawing.Size(67, 20)
    24. Me.AktionenToolStripMenuItem.Text = "Aktionen"
    25. ... usw...


    Müsste alles seine richtigkeit haben ... :(

    LG Sky
    //Kommentar

    Skybird schrieb:

    Müsste alles seine richtigkeit haben ... :(
    hmm, ja leider . So langsam gehen mir aus der Ferne die guten Ideen aus, denn Deine Aussage dass im Form.Load Event das MenüStrip nur 1 Element hat und

    VB.NET-Quellcode

    1. Me.Menü_.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.RthrhToolStripMenuItem, Me.Menü, Me.AktionenToolStripMenuItem, Me.ExtrasToolStripMenuItem})

    passen ja so garnicht zusammen ?(

    Ein Schuss noch: wird die Designer.VB denn überhaupt ausgeführt ? Kommentier über InitialiseComponents das Attribut

    VB.NET-Quellcode

    1. '<System.Diagnostics.DebuggerStepThrough()> _
    versuchsweise mal aus und setz einen Breakpoint auf das AddRange. Du kannst dann auch schrittweise die anderen Befehle ausführen - ich sag ja diese Art Probleme sind hässlich ...
    Huhu,

    Der Haltepunkt wird momentan nicht erreicht. Der Quellcode weist Unterschiede zur Originalversion auf.

    Wenn das Erreich des Haltepunktes bei Abweichen des Quellcodes zulässig sein soll, klicken sie mit der rechtem Maustaste auf den Haltepunkt...

    Um dies für alle Haltepunkte zuzulassen, wählen Sie "Extras", "Optionen", "Debugging", und "Allgemein" aus, und deaktivieren "Quelldateien müssen exakt mit der Originalversion übereinstimmen"


    LG Sky
    //Kommentar