Fragensteller
MainForm plötzlich ohne Labels, Buttons usw.

Allgemeine Diskussion
-
Hoi,
ich habe heute vormittag ganz normal debugged, danach kompiliert und VBnetE normal beendet.
Als ich es jetzt wieder aufrufe, sind auf der (MDI)MainForm keinerlei Menüs, Labels, Buttons usw. mehr zu sehen !
Laut FormExplorer (auf der rechten Seite) sind aber alle noch vorhanden, bei z.B. einer Neuanlage mit demselben Namen kommt die Meldung, dass das Element schon existiert.
Auch wenn ich debugge, erscheint nur die leere Form.
Kann mir jemand sagen, was da los ist ?
Doei
Franz
Be a good forum member - mark posts that contain the answers to your questions or those that are helpful
- Typ geändert Robert Breitenhofer Dienstag, 6. November 2012 17:06 Keine Rückmeldung des Fragenstellender
Alle Antworten
-
Hallo, kannst du mal den Code der Form1.Designer.vb posten (Spezeil den der die Eigenschaften der Form selbst zuwweißt)? Ich nehme an das durch einen Fehler in VS solche Zeilen wie
Me.Controls.Add(Me.Button1)
fehlen. Somit existieren zwar die Variablen, aber man kann Sie nicht sehen, da Sie nicht zur Form hinzugefügt werden.Koopakiller - http://koopakiller.ko.ohost.de/
-
Hoi,
das sieht soweit alles "normal" aus.
Hier mal ein paar Auszüge:
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ Partial Class TestAppForm Inherits System.Windows.Forms.Form 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub 'Wird vom Windows Form-Designer benötigt. Private components As System.ComponentModel.IContainer 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(TestAppForm)) Me.MenuStrip1 = New System.Windows.Forms.MenuStrip Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem Me.NeuToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem .. .. .. ' 'MenuStrip1 ' Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) Me.MenuStrip1.Name = "MenuStrip1" Me.MenuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional Me.MenuStrip1.Size = New System.Drawing.Size(1020, 24) Me.MenuStrip1.TabIndex = 0 Me.MenuStrip1.Text = "MenuStrip1" ' 'DateiToolStripMenuItem ' Me.DateiToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NeuToolStripMenuItem, Me.ÖffnenToolStripMenuItem, Me.toolStripSeparator, Me.SpeichernToolStripMenuItem, Me.SpeichernunterToolStripMenuItem, Me.toolStripSeparator1, Me.DruckenToolStripMenuItem, Me.SeitenansichtToolStripMenuItem, Me.toolStripSeparator2, Me.BeendenToolStripMenuItem}) Me.DateiToolStripMenuItem.Name = "DateiToolStripMenuItem" Me.DateiToolStripMenuItem.Size = New System.Drawing.Size(46, 20) Me.DateiToolStripMenuItem.Text = "&Datei" .. .. 'ToolStripMenuItem1 ' Me.ToolStripMenuItem1.Image = Global.TestApp.My.Resources.Resources.TestApp Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1" Me.ToolStripMenuItem1.Size = New System.Drawing.Size(164, 22) Me.ToolStripMenuItem1.Text = "TestApp" ' 'WindowsToolStripMenuItem ' Me.WindowsToolStripMenuItem.Name = "WindowsToolStripMenuItem" Me.WindowsToolStripMenuItem.Size = New System.Drawing.Size(68, 20) Me.WindowsToolStripMenuItem.Text = "&Windows" ' .. .. 'TestAppForm ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.BackColor = System.Drawing.SystemColors.Control Me.ClientSize = New System.Drawing.Size(1020, 714) Me.Controls.Add(Me.ToolStrip1) Me.Controls.Add(Me.StatusStrip1) Me.Controls.Add(Me.MenuStrip1) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.IsMdiContainer = True Me.MainMenuStrip = Me.MenuStrip1 Me.Name = "TestAppForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = " " & _ " " Me.ContextMenuStrip1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() End Sub .. .. Friend WithEvents MenuStrip1 As System.Windows.Forms.MenuStrip Friend WithEvents DateiToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Friend WithEvents NeuToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Friend WithEvents ÖffnenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Friend WithEvents toolStripSeparator As System.Windows.Forms.ToolStripSeparator Friend WithEvents SpeichernToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem .. .. End Class
Für mich sieht das erstmal alles gut aus....
Doei
Franz
Be a good forum member - mark posts that contain the answers to your questions or those that are helpful
-
Hallo Franz,
entscheidend ist die Methode InitializeComponent (im Folgenden InitC genannt) in TestAppForm.Designer.vb. Wahrscheinlich fehlt eine der Methodenaufrufe SuspendLayout am Anfang von InitC oder ResumeLayout bzw. PerformLayout am Ende von InitC bei einem der Kontainer (MenuStrip1, ToolStrip1, StatusStrip1 etc.). Wenn Du ein ähnlich aufgebautes Formular in einem anderen Projekt hast, kannst Du mal FormVonProjektX.Designer.vb mit TestAppForm.Designer.vb bzgl. des Aufbaus von InitC vergleichen.
Schönen Gruß,
LittleBlueBird
- Bearbeitet LittleBlueBird Montag, 5. November 2012 18:06
-
Hallo LittleBlueBird,
das hatte ich schon vorher gemacht, aber nichts gefunden.
Sowas finde ich im InitBereich...
Me.ControlCenterToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem Me.MenuStrip1.SuspendLayout() Me.ContextMenuStrip1.SuspendLayout() Me.SuspendLayout()
und sowas weiter unten...
Me.MenuStrip1.ResumeLayout(False) Me.MenuStrip1.PerformLayout() Me.ContextMenuStrip1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout()
End SubDoei
Franz
Be a good forum member - mark posts that contain the answers to your questions or those that are helpful
-
Hallo Franz,
nun, das war bei mir das Problem, als die ToolsTripButtons verschwunden waren. Aber mir ist aufgefallen, dass bei dir die Me.MenuStrip1.Items.AddRange-Methode fehlt. Diese sollte bei jedem Kontainer vorhanden sein, und wenn sie fehlt, musst du sie per Hand einfügen. Der Aufbau von InitC ist wie folgt: zuerst wird der jeweilige Kontainer (MenuStrip1, ToolStrip1, StatusStrip1) definiert, direkt darunter befinden sich die dazugehörigen Definitionen der einzelnen Elemente (Label, Button, usw.), in etwa wie folgt:
' 'StatusStrip1 ' resources.ApplyResources(Me.StatusStrip1, "StatusStrip1") Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripStatusLabel1, Me.ToolStripStatusLabel2}) Me.StatusStrip1.Name = "StatusStrip1" Me.StatusStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode Me.StatusStrip1.SizingGrip = False ' 'ToolStripStatusLabel1 ' Me.ToolStripStatusLabel1.Name = "ToolStripStatusLabel1" resources.ApplyResources(Me.ToolStripStatusLabel1, "ToolStripStatusLabel1") ' 'ToolStripStatusLabel2 ' Me.ToolStripStatusLabel2.BorderSides = System.Windows.Forms.ToolStripStatusLabelBorderSides.Left Me.ToolStripStatusLabel2.BorderStyle = System.Windows.Forms.Border3DStyle.Etched Me.ToolStripStatusLabel2.Name = "ToolStripStatusLabel2" resources.ApplyResources(Me.ToolStripStatusLabel2, "ToolStripStatusLabel2")
Die Elemente musst du nun in die AddRange-Methode aufnehmen, wie oben gezeigt. Ich hoffe, dir weiter geholfen zu haben.
Schöne Grüße,
LittleBlueBird
- Bearbeitet LittleBlueBird Donnerstag, 1. November 2012 16:59
-
Hoi,
this makes no difference,
Here is the (TestAppForm)part from the Designer:
'TestAppForm ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.BackColor = System.Drawing.SystemColors.Control Me.ClientSize = New System.Drawing.Size(1020, 714) Me.Controls.Add(Me.ToolStrip1) Me.Controls.Add(Me.StatusStrip1) Me.Controls.Add(Me.MenuStrip1) Me.Cursor = System.Windows.Forms.Cursors.Hand Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.IsMdiContainer = True Me.MainMenuStrip = Me.MenuStrip1 Me.Name = "TestAppForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = " " & _ " " Me.MenuStrip1.ResumeLayout(False) Me.MenuStrip1.PerformLayout() Me.ContextMenuStrip1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout()
Seems to be that all is there what is needed, or ?
Doei
FranzBe a good forum member - mark posts that contain the answers to your questions or those that are helpful
-
Hallo Franz,
du hast dich wohl mit meiner Antwort nicht auseinandergesetzt oder den Kern der Sache überlesen. Das was du vorhin gepostet hast, ist die falsche Stelle. In deiner Antwort an Koopakiller hast du einen Ausschnitt beigefügt, der im Folgenden teilweise gelistet wird:
' 'MenuStrip1 ' Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) Me.MenuStrip1.Name = "MenuStrip1" Me.MenuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional Me.MenuStrip1.Size = New System.Drawing.Size(1020, 24) Me.MenuStrip1.TabIndex = 0 Me.MenuStrip1.Text = "MenuStrip1"
Hier vermisse ich den Aufruf der AddRange-Methode. Damit fehlt bei dir das Hauptmenü, z.B. Datei. Vor Me.MenuStrip1.Location müsste folgende Zeile stehen:
Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DateiToolStripMenuItem, ...})
wobei "..." durch die restlichen MenuItems ersetzt werden müssten.
Schönen Gruß,
LittleBlueBird
- Bearbeitet LittleBlueBird Freitag, 2. November 2012 11:35
-
****************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
****************************************************************************************************************Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.