[C#] Nytt fönster placeras ej på rätt plats?

Permalänk
Medlem

[C#] Nytt fönster placeras ej på rätt plats?

Jag skapar ett nytt tomt fönster utan border och utan titlebar dvs. endast en tom fyrkantig ruta. Detta fönster ska jag sedan placera som ett lager ovanpå en speciell UserControl.

för att placera fönstret har jag denna kod:

Control c = myControl; Form f = c.ParentForm; Point p = f.PointToScreen(c.Location); Overlay.Location = p; Overlay.Width = c.Width; Overlay.Height = c.Height;

Första gången koden körs så hamnar min OverlayFrame snett, dvs. ej exakt ovanpå myControl. Andra gången koden körs så flyttas OverlayFrames position till korrekt plats. Varför blir det fel första gången?

Visa signatur

Desktop: Ryzen 9 3950x | RTX 2060 | 16Gb RAM | 512Gb + 256Gb SSD
NAS: HP Microserver Gen8 | 8GB Ram | 3x2Tb ZFS | FreeNAS
SRV: HP ML350p Gen8 | 64GB Ram | 2x E5-2630v2 | ESXI

Permalänk
Medlem
Skrivet av McZ:

Jag skapar ett nytt tomt fönster utan border och utan titlebar dvs. endast en tom fyrkantig ruta. Detta fönster ska jag sedan placera som ett lager ovanpå en speciell UserControl.

för att placera fönstret har jag denna kod:

Control c = myControl; Form f = c.ParentForm; Point p = f.PointToScreen(c.Location); Overlay.Location = p; Overlay.Width = c.Width; Overlay.Height = c.Height;

Första gången koden körs så hamnar min OverlayFrame snett, dvs. ej exakt ovanpå myControl. Andra gången koden körs så flyttas OverlayFrames position till korrekt plats. Varför blir det fel första gången?

Morgontrött och ser inga problem här, var i programmet kör du koden?
Kan det vara nåt med fönsterfokus?
Prova lägga koden under en knapp eller dylikt för att debugga?

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770