Frage

Bei meinen Benutzern tritt zeitweise ein Fehler auf, wenn sie eine in VB.NET 3.5 erstellte Windows Forms-Anwendung verwenden.Wenn sie auf das Formular klicken und das Formular neu gezeichnet wird, wird offenbar ein rotes „X“ über das MenuStrip-Steuerelement gemalt und die App stürzt mit der folgenden Fehlermeldung ab.

Hat das schon mal jemand gesehen?Kann mir jemand die richtige Richtung weisen?

    System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
       Parameter name: index

   at System.Collections.ArrayList.get_Item(Int32 index)
   at System.Windows.Forms.ToolStripItemCollection.get_Item(Int32 index)
   at System.Windows.Forms.ToolStrip.OnPaint(PaintEventArgs e)
   at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
   at System.Windows.Forms.Control.WmPaint(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.MenuStrip.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
War es hilfreich?

Lösung

Fügen Sie diesem Streifen dynamisch Elemente hinzu?

Andere Tipps

Sie müssen herausfinden, wo im Code dies geschieht, aber es wird durch eine ganzzahlige Variable verursacht, die für den Zugriff auf Ihr dynamisches Menü verwendet wird.Bevor Sie das Menü verwenden, stellen Sie mit einer if-Anweisung sicher, dass der Wert zwischen 0 und der Größe der Sammlung (1) liegt.Platzieren Sie außerdem einen Haltepunkt an der Stelle, an der Sie die Variable erstellen, und gehen Sie den Code schrittweise durch, um zu beobachten, was damit passiert.

Außerdem wäre ein Codebeispiel für die Verwendung des dynamischen Menüs hilfreich.

Beim Durchsehen des Codes habe ich festgestellt, dass das Menü jedes Mal gelöscht und neu geladen wird, wenn die Formulardaten aktualisiert werden.Das Menü muss nur einmal geladen werden, wenn das Formular zum ersten Mal geladen wird.

Ich denke, dass das Menü möglicherweise gelöscht wird, während das Formular gemalt wird.Glauben Sie, dass das wahr sein könnte?

Vielen Dank an alle, die mir geholfen haben, den richtigen Weg zu weisen.Ich habe eine Änderung vorgenommen, um das Menü nur dann zu löschen/hinzufügen, wenn das Formular geladen wird, sodass dieser Fehler beim Zeichnen des Formulars nicht erneut angezeigt werden sollte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top