Halfman Skrevet 22. mai 2011 Del Skrevet 22. mai 2011 Hei. Har sitti her noen timer med og få "free drawing" (aka tegne med musa) til og fungere. har fått til såpas at jeg klarer og tegne på en form. men har et ønske å bare kunne tegne på et bestemt sted. eksepel i en Panel eller lignene. takknemlig for all hjelp og tips. mvh. vetle Lenke til kommentar
Nuduaa Skrevet 23. mai 2011 Del Skrevet 23. mai 2011 (endret) Nå har ikke jeg brukt WinForms på en god stund, men er det ikke bare å ta graphics objektet til for eksempel et panel. //bare tegn når du holder museknappen inne, kan sikkert gjøres bedre private bool _canDraw = false; private void DrawPanel_MouseClick(object sender, MouseEventArgs e) { _canDraw = !_canDraw; } //hvor DrawPanel er et panel, kan egentlig være hva som helst nesten, //husk også at X og Y er relativ til den kontrollen som musen flyttes rundt på. private void DrawPanel_MouseMove(object sender, MouseEventArgs e) { if(_canDraw) { //du burde dispose graphics objektet etter bruk using (var g = DrawPanel.CreateGraphics()) { g.DrawRectangle(Pens.Black, e.X, e.Y, 1, 1); } } } edit: la til using på graphics objektet så den blir frigjort etter bruk. Endret 23. mai 2011 av Joebean Lenke til kommentar
GeirGrusom Skrevet 23. mai 2011 Del Skrevet 23. mai 2011 Burde heller tegne til et backbuffer, for så å tegne dette til vinduet ved Paint. Da slipper du CreateGraphics kallet (som du egentlig skal frigjøre med ReleaseGraphics) CreateGraphics er tilnærmet det samme som GetDC, som må frigjøres med ReleaseDC (merk dog at dette er GDI+ og ikke GDI, så det er ikke akkurat det samme) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå