Grafik | |
![]() | ![]() |
![]() | |
I ett formulär kan positioner anges med koordinater (x,y) där x motsvarar läget horisontellt och y läget vertikalt. Utgångspunkten är det övre vänstra hörnet i det objekt där vi skall rita. Det hörnet har alltså koordinaten (0,0). x-värdet ökar åt höger och y-värdet ökar nedåt. Standardenheten är pixlar (bildpunkter). I VB6 var det twips som var standardenhet, där 1 tum=1440 twips. Det finns inga ritkontroller i Toolboxen. Numera får vi använda grafikmetoderna som finns i namnområdet System.Drawing. Ett exempel som ritar en linje: Dim Grafik As System.Drawing.Graphics Först skapar vi ett grafikobjekt som vi kan kalla Grafik. Nästa rad skapar ett argument beroende på om det är en linje eller en fylld figur vi skall göra. I detta fall är det objektet Pen som blir argument och vi döper det till ritfärg. I det här exemplet blir linjen röd med 5 pixlars bredd. Nästa rad sätter grafikobjektet Grafik till att skapa grafik i den PictureBox som finns i formuläret. Det går lika bra att rita på formen eller något annat objekt. Skulle vi rita på formen skriver vi i stället Grafik = Me.CreateGraphics(). Sist anger vi vad för slags figur som grafikobjektet skall rita.
Grafik.DrawRectangle(ritfärg, 10, 20, 180, 60) I det här fallet motsvarar (10,20) det övre vänstra hörnet i rektangel och (180,60) det nedre högra hörnet. 180-10 är alltså längden och 60-20 är höjden på
rektangeln.
Grafik.DrawEllipse(Ritfärg, 0, 0, 80, 100) Här anger första nollan att ellipsen tangerar vänstra kanten på
PictureBoxen, den andra nollan att ellipsen också tangerar övre kanten på
PictureBoxen, alltså x=0 och y=0. Sedan anger 80 bredden på ellipsen, medan 100 anger höjden. I det här fallet är alltså ellipsen en stående ellips.
Grafik.DrawEllipse(Ritfärg, 0, 0, 100, 80) Om vi vill ha fyllda figurer dimensionerar vi en SolidBrush i stället för Pen, och låter denna bli argument. Dim Fyllningsfärg As New SolidBrush(Color.Blue)
Dim Grafik As System.Drawing.Graphics
Grafik.FillEllipse(Fyllningsfärg, 0, 0, 100, 80) De ritade linjerna kommer bara att finnas kvar så länge inget annat täcker linjerna. Grafiken kommer också att försvinna om vi minimerar fönstret och sedan maximerar det igen. Detta förhindras om koden placeras i formulärets Paint-händelseprocedur.
Nu kommer det att stå Form1_Paint i den högra listan och följande kod har hamnat i redigeringsfönstret: Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint End Sub Om vi nu skriver vår grafikkod inne i den Sub-proceduren kommer inte grafiken att försvinna. | |
![]() | ![]() |
![]() | |
SupportData.Net |