VisualBasic PictureBox Image ändert sich nicht

G

GIHomer

Gast
Hey ho,

ich habe folgendes Problem ich würde gerne durch einen klick auf einen Button Daten kopieren, funktioniert soweit auch.
Nur würde ich gerne wenn man auf den Button klickt gerne in einer PictureBox eine .gif Datei anzeigen - eine Sanduhr.
Solange während der Kopiervorgang halt läuft.

Also:
Ich habe eine Picture Box die leer ist, drücke ich auf den Kopierbutton, soll eine Sanduhr in die PictureBox kommen (.gif Datei die sich dreht).
Ich habs schon mit Visible, und Enabled und weiß der Geier was probiert aber es klappt einfach nicht..
Ist der Kopiervorgang beendet kommt dann ein grüner Haken in einer anderen PictureBox - funktioniert auch schon

Was mir auch gerade noch aufgefallen ist:
Ich habe per Timer
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
labelUhr.Text = Now
End Sub
Eine Uhr eingebaut, die während des Kopiervorgangs nicht läuft, kann ich das irgendwie umgehen ? Das diese weitertickt ?

Ich hoffe ihr könnt mir da einen kleinen Tipp geben :)
was ihr noch Informationen brauch einfach bescheid geben

Mit freundlichen Grüßen,
GIHomer
 
Zuletzt bearbeitet:
Meine .NET Zeiten sind zwar schon lange her, aber ich glaube mich erinnern zu können, dass das ohne Threading und Methodinvoking nicht funktioniert.
Also, das Ändern zur Laufzeit, während z.B. eine Berechnung aktiv ist.

In dem Fall müsstest du dann einfach die Methode, die das Bild ändert als eigenen Thread starten, der einen Invokebefehl an die Parent Form schickt, der dann das Bild ändert.
 
Solange während der Kopiervorgang halt läuft.

Während der Kopierzeit kommt Windows nicht mehr dran, Multitasking-Betriebssystem hin oder her.
Schnelle Abhilfe: füge den Befehl Application.DoEvents() in den Code ein (optimal in eine
Schleife, um ihn mehrfach auszuführen). Der Befehl sorgt dafür, das Windows auch noch mal
drankommt und dann Timer und Sanduhr und alles andere bearbeiten kann.
Ist nicht optimal, lässt sich aber am Schnellsten umsetzen :freaky:
 
einfache schnelle und von mir aus unsaubere Lösungen sind mir am liebsten :D

leider bekomm ich das mit dem Application.DoEvents() nicht so ganz hin,
irgendwie will das nicht so ganz egal wo ich es im code hinsetze
 

Ähnliche Themen

D
Antworten
3
Aufrufe
1.513
derBobby
D
Zurück
Oben