"Rotes Kreuz" Problem bei MenuStrip und ToolStrip

Ich habe eine Software, die auf vielen Computern einwandfrei funktioniert hat, obwohl auf einem Computer gelegentlich ein Problem auftritt, werden sowohl der Menüstreifen als auch der Toolstreifen als leerer weißer Hintergrund mit einem roten Kreuz darüber als benutzerdefiniertes Steuerelement angezeigt würde, wenn Sie ein Nullobjekt erstellt. Dies passiert nicht, während ich ein Debugging durchführe und ich weiß nicht, wie das Problem erneut auftreten kann, aber es passiert. Ich fragte mich, ob jemand wusste, was das Problem sein könnte?

Wäre es die Version des .NET Frameworks?

Vielen Dank

Antworten auf die Frage(5)

auf die wir stolz sind. Auf diesem einen Computer sehe ich ein .NET 3.5-Programm, das gelegentlich das rote X auf seinem Datagrid anzeigt. Und ein anderes weitaus einfacheres .NET 2.0-Programm hat das rote X auf seinem menuStrip. Ich habe nur Quellcode für das einfachere Programm, aber ich kann sagen, dass es überhaupt keinen Benutzercode gibt, der diese Komponente betrifft. Kein Cross-Thread-Zeug, weil nichts es aktualisiert. Der Inhalt wird zur Entwicklungszeit festgelegt, wobei beim Laden des Programms ein Element hinzugefügt wird. Der Red X-Fehler trat lange nach dem Laden des Programms auf.

Ich war sehr überrascht, dass das Problem in zwei verschiedenen Frameworks und in einem Programm ohne Datenbindung aufgetreten ist. Ich hoffe sehr, dass der virtuelle Speicher des Computers ausgeschaltet ist.

Wenn dies nicht der Fall ist, sind Hinweise zu Systemteilen, die in .NET 2.0 und .NET 3.5 gemeinsam verwendet werden, willkommen.

Update: Der Benutzer mit dem Problem hat den Computer in den Ruhestand versetzt und ersetzt (wodurch das Problem behoben wurde)

Lösung für das Problem

The Red X of Death"). Machst du eine benutzerdefinierte Zeichnung inOnPaint? Oder es gibt eine Grafikressource oder eine Glyphe, die beschädigt ist oder nicht ordnungsgemäß entsorgt wurde.

Bearbeiten: Ich habe Ihre Frage noch einmal gelesen. Sie scheinen dies nur auf einer der Maschinen zu haben. Dafür habe ich ein bisschen gegoogelt und bin darauf gestoßenDieser alte Faden. Der untere Beitrag weist darauf hin, dass möglicherweise ein Problem mit dem deaktivierten virtuellen Speicher vorliegt:

Wir haben es geschafft, dieses Problem zu lösen - wir sahen das Problem auf einem Gerät mit XP Embedded. Der XPe-Image-Entwickler hatte den virtuellen Speicher deaktiviert, und sobald wir ihn einschalteten, verschwand das Problem. Ich glaube, es ist nur ein Symptom dafür, dass auf dem System der Speicher zur Neige geht, um die Grafiken anzuzeigen (möglicherweise besonders, wenn Sie viel doppelte Pufferung verwenden).

Hoffentlich hilft das.

 ThePower16. Juni 2009, 10:35
Danke für das Update und die Infos
 ThePower16. Juni 2009, 10:09
Nein, ich mache keine benutzerdefinierten Zeichnungen, sondern verwende sie nur als Standard. Ich verstehe, was Sie meinen, da ich darüber gestolpert bin, als ich in der Vergangenheit benutzerdefinierte Steuerelemente erstellt habe. Trotzdem danke für deine Hilfe!
 Igal Tabachnik16. Juni 2009, 10:15
Entschuldigung, ich habe Ihre Frage zum ersten Mal falsch verstanden.

Out-of-Memory-Ausnahme mir.

Bearbeiten: Welches kann manchmal auf ein führenSystem.InvalidOperationException: BufferedGraphicsContext

Stellen Sie sicher, dass Sie Invoke verwenden, wenn Sie auf Steuerelemente zugreifen und / oder Ereignisse aus einem Thread auslösen, der nicht der Haupt-UI-Thread ist.

die GUI-Steuerelemente von einem anderen Thread als dem GUI-Thread zu aktualisieren? Kombinieren Sie die Kreuzthreadoperation mit einem Ausnahmehandler, der alles verschluckt hat, und wir hatten das von Ihnen beschriebene Verhalten (in einem Rastersteuerelement, nicht in einer Menüleiste) in einer von mir verwalteten App.

Ihre Antwort auf die Frage