Ich entwerfe eine GUI und ich habe eine Bezeichnung, die ich effektiv als eine "Bitte warten" Nachricht verwenden, nachdem ich eine Aktion aufrufen, die eine Weile dauert. Der Text des Labels ist statisch. Ich habe ihn in den Eigenschaften in VS2010 für das Label-Steuerelement festgelegt.C# WinForms Etikett wird angezeigt, aber nicht Text angezeigt
Wenn ich diese Aktion auf dem Formular, ich .Show() das Steuerelement, das normalerweise ausgeblendet wird, bis der zeitaufwendige Prozess abgeschlossen ist, dann .Hide() es. Wenn es die .Show() trifft, erscheint das Label (ich weiß das, weil ich den BorderStyle auf Fixed3D gesetzt habe, so dass ich den Rand des Labels sehen kann), aber es ist kein Text drin. Ich habe versucht, das Etikett auf Autosize zu setzen und nicht vergebens, mein Text ist auf Schwarz auf Grau gesetzt, also keine unsichtbare Tinte, alles ist sichtbar, Schrift ist gesetzt. Der Code wird so ausgeführt, wie ich es möchte, es gibt einfach keinen Text auf dem Etikett. Ich bin ratlos.
Irgendwelche Ideen?
Es tritt in demselben Thread auf, aber der Showaufruf wird ausgeführt, bevor der Prozess gestartet wird, und der Verbergungsaufruf erfolgt nach einem .waitforExit() für den Prozess. Beide Aufrufe werden ausgeführt und das Label wird angezeigt und verschwindet wie erwartet, es fehlt nur der Text –
Dies erwies sich als die richtige Antwort, Aufruf .refresh() auf dem Etikett nach .show() behoben. Seltsam, denke, es brauchte nur den zusätzlichen Kick in den Hintern, um fertig zu zeichnen und seine Eigenschaften richtig anzuwenden, bevor ich mit dem Prozess begann. Vielen Dank! –