vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Zeichnen von Linien ohne flackern? 
Autor: keco
Datum: 13.12.09 17:41

Hallo,

ich habe noch eine Frage, was das Zeichnen betrifft. Ich möchte eine Linie auf einem Panel zeichnen können, wozu ich ein UserControl erstellt habe, welches von Panel erbt. Mittels der MouseDown, MouseMove und MouseUp Eregnisse wird dabei, wie in Paint, eine Vorschau der Linie gezeigt. Dabei lasse ich noch die Länge der Linie in Pixel anzeigen. Durch das ständige Neuzeichnen flackert aber alles ziemlich.

Im MouseDown speichere ich die Position des geklickten Punktes als Startwert. Im MouseMove wird dabei zuerst diese Methode aufgerufen:
   Public Sub DrawLines(ByVal g As Graphics)
      g.Clear(Color.White)
      g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
 
      For Each obj In pLines
         g.DrawLine(Pen, obj.StartPoint, obj.EndPoint)
      Next
   End Sub
Dabei wird das übergebene Graphics-Objekt mittels Me.CreateGraphics erzeugt. Anschließend wird dann durch .DrawLine die Linie gezeichnet und die Länge dazu angezeigt. Im MouseUp wird dann eine neue Linie in der Auflistung hinzugefügt mit dem Startwert und dem Endwert. Durch Invalidate wird das Paint-Ereignis ausgelöst:
   Private Sub Me_Paint(ByVal sender As System.Object, ByVal e As _
     PaintEventArgs) Handles MyBase.Paint
      Call DrawLines(e.Graphics)
   End Sub
Wenn jetzt schon mehrere Linien in der Auflistung vorhanden sind und ich eine neue zeichnen möchte, dann flackert das alles, da schließlich nach jeder Mausbewegung der gesamte Inhalt neugezeichnet wird. Wie kann man das optimieren?

Ich habe schon versucht alle gezeichneten Linien in ein Image zu packen und im DrawLines einfach das Image anzuzeigen. Aber dann werden die durch MouseMove erzeugten Linien, die ja nur der Vorschau dienen sollen, nicht wieder gelöscht. Hat jemand von euch eine Idee, wie man ganz normal zeichnen kann, ohne, dass alles flackert?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Zeichnen von Linien ohne flackern?7.879keco13.12.09 17:41
Re: Zeichnen von Linien ohne flackern?6.067ModeratorRalf Ehlert13.12.09 20:52
Re: Zeichnen von Linien ohne flackern?6.089keco13.12.09 21:03
Re: Zeichnen von Linien ohne flackern?5.996HellDoG14.12.09 13:44
Re: Zeichnen von Linien ohne flackern?6.076keco14.12.09 14:08
Re: Zeichnen von Linien ohne flackern?5.938HellDoG14.12.09 14:15
Re: Zeichnen von Linien ohne flackern?6.110keco14.12.09 14:21
Re: Zeichnen von Linien ohne flackern?6.093TobiasS14.12.09 15:11
Re: Zeichnen von Linien ohne flackern?6.018ModeratorRalf Ehlert14.12.09 14:58
Re: Zeichnen von Linien ohne flackern?6.221Jonny13214.12.09 15:25
Re: Zeichnen von Linien ohne flackern?6.071TobiasS14.12.09 15:28
Re: Zeichnen von Linien ohne flackern?5.929HellDoG14.12.09 15:31
Re: Zeichnen von Linien ohne flackern?5.972Jonny13214.12.09 15:35
Re: Zeichnen von Linien ohne flackern?6.048TobiasS14.12.09 16:06
Re: Zeichnen von Linien ohne flackern?6.098keco15.12.09 17:04
Re: Zeichnen von Linien ohne flackern?5.910TobiasS15.12.09 19:02
Re: Zeichnen von Linien ohne flackern?5.898keco15.12.09 19:53
Re: Zeichnen von Linien ohne flackern?5.984GPM16.12.09 00:06
Re: Zeichnen von Linien ohne flackern?6.203Jonny13216.12.09 08:29
Re: Zeichnen von Linien ohne flackern?6.043TobiasS16.12.09 14:43
Re: Zeichnen von Linien ohne flackern?5.952keco16.12.09 15:05
Re: Zeichnen von Linien ohne flackern?5.978keco16.12.09 14:57
Re: Zeichnen von Linien ohne flackern?6.249Jonny13216.12.09 15:15
Re: Zeichnen von Linien ohne flackern?5.920keco16.12.09 15:20
Re: Zeichnen von Linien ohne flackern?5.977GPM16.12.09 17:27
Re: Zeichnen von Linien ohne flackern?5.973keco16.12.09 17:56

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel