Följande kod skall , vad jag tycker, vara helt rätt. Får inga klagomål från studion och programmet puttrar igång. Men några linjer blir det inte... Hm... Kan du inte sätta koden i paint-eventet istället? Det är så man ska göra då du annars kommer förlora dina linjer så fort windows anser att fönstret måste ritas om. Kör du i paint-eventet har du dessutom tillgång till ett graphics-objekt Jo jag vet att man kunde göra det i painteventet. Grejjen är den att resten av sakerna på panelen är skapade dynamiskt i loaden. Därav skulle jag vilja rita linjerna där med. Men det slog mig också innan att dom kommer försvinna. Som deet ser ut nu så slänger jag ut pictureboxar om är 1px höga och X px brada med svart bakgrund. Då finns det ingen rick för att det blir slött när den skall rita ut en massa linjer i paineventet så fort man börjar scrolla. anledningen att du inte får några linjer är att (om jag fattat rätt) du ritar i form_load Hm... Det är snabbare att rita ut några få linjer (tar nästan ingenting i prestandaväg) än att hålla reda på några extra fönster (pictureboxar) samt att hålla på och anropa paint på de fönstren och lite annat krångel. Om du vill ha prestanda så är det som sagt att rita lite manuellt i paint-eventet Stämmer precis som ni skriver... Måste vara värmen som göra hjärnan långsam och trög... :)Rita på en panel...
Graphics graphics = Graphics.FromHwnd(panel1.Handle);
graphics.DrawLine(Pens.Red, 0, 30*iLoop + 15,panel1.Width , 30*iLoop + 15);
Sv: Rita på en panel...
Sv:Rita på en panel...
Sv: Rita på en panel...
vid formload så har inte formuläret visats ännu och eftersom grafikytor på windowskontroller jobbar dirket mot skärmen (om man inte dubbebbuffrar) så kommer du rita till skärmen på ett formulär som inte syns än... = inget resultat..
även om du visar formuläret först så är det itne en bra lösning eftersom dina linjer kommer försvinna om du drar ett annat fönster över det du ritat på..
det som kommer ske då är att panelen när panelen blir synlig igen så kommer dess painevent att anropas och den kommer måla om sig själv med sin bakgrundsfärg... och dina linjer kommer försvinna där...
så kort o gott... rita alltid i paint..
//RogerSv: Rita på en panel...
Sv:Rita på en panel...