Probier doch mal ein einfaches Me.Update(), Me.Refresh() oder Me.Invalidate(), nachdem das Label in Zeile 9 verändert wurde. btw: MsgBox = Microsoft.VisualBasic (= VB6)
Hm … könnte an der Geschichte mit dem anderen Thread liegen (GUI darf nur durch den Mainthread verändert werden). Aber lass Dir mal späßleshalber nach der Veränderung der Labelposition dieselbige ausspucken. Kann sein, dass da ein interessantes Ergebnis rauskommt. Schiebst Du nur ein anderes Fenster drüber oder minimierst Du auch Dein Programm?
Ja gut, eh … wenn man in die Gleichungen oben für Int1 bzw. Int3 Null einsetzt, hat man eine negative X-Koordinate für das Label innerhalb des Panels. Dann müsste die Hälfte des Labels quasi abgeschnitten sein und man sieht am linken Panelrand die rechte Labelhälfte.
Zitat von Developement: „My.Settings.int1 = Panel1.Size.Width“ Zitat von Developement: „der die Größe vom Panel abruft, der gibt dann 0 an als Größe, da das Programm ja minimiert ist“ => Wenn minimiert, dann ist Panel1.Width = 0 und somit My.Settings.int1 = 0 VB.NET-Quellcode (8 Zeilen)
Hab das mal nachgebaut: VB.NET-Quellcode (16 Zeilen) Läuft. Nach 5 Sekunden wird das Label zentriert. Und zwar egal, ob das Form normal oder minimiert ist. Jetzt liegt es an Dir, die funktionalen Unterschiede zu Deinem Code zu finden.