Hallo,
ich hatte schon einmal über mein Problem geschrieben, das ich mit der Picturebox beim Umstieg von vb6 auf vb.net habe und dank hilfreicher Kommentare habe ich jetzt die Zeichnerei in der Picturebox soweit im Griff, indem ich nur noch mit Pixeln statt wie in vb6 mit komfortableren Millimeter arbeite.
Probleme macht mir die Geschwindigkeit der Zeichnerei in der Picturebox.
In vb6 hatte ich Anfangs die gleiche Schwierigkeit, dort hatte ich das folgendermaßen gelöst:
- 2 Pictureboxen, einmal die für den Benutzer sichtbare (PictureBox1) und eine unsichtbare mit gleichen Einstellungen (PictureBoxBuffer) mit visible=false
- Zeichnen der Projektelemente (Linien, Rechtecke, Texte,... ca. 20-30 tausend) in unsichtbaren PictureboxBuffer
- Nachdem alle Elemente gezeichnet sind => PictureBox1.Picture=PictureBoxBuffer.Image (im Prinzip das in der unsichtbaren PB gezeichnete Bild in die sichtbare PB kopieren)
Das war sauschnell, das Neuzeichnen von ca. 50.000 Elementen erfolgte praktisch ohne Zeitverzug
Wenn ich jetzt in vb.net den gleichen Ansatz verfolge, habe ich folgende Probleme:
- .Picture gibt es nicht mehr bei der PictureBox
- PictureBox1.Image=PictureBoxBuffer.Image führt zu einem weißen Bild
- Wenn ich die PictureBox1 auf visible=false stelle, dann zeichne und danach visible=true mache, ist die PB ebenfalls leer, irgendwie wird beim Umstellen das eben gezeichnete gelöscht
Im Moment komme ich nicht richtig weiter und hoffe mir kann jemand einen hilfreichen Tip geben, im Prinzip geht es nur darum sehr viele Zeichenelemente wie Linien oder Rechtecke auf einer PB als Zeichenfläche zu malen und das so schnell, das es (fast) in Echtzeit geschieht.
Vielen Dank für eure Kommentare im Voraus
Sascha
ich hatte schon einmal über mein Problem geschrieben, das ich mit der Picturebox beim Umstieg von vb6 auf vb.net habe und dank hilfreicher Kommentare habe ich jetzt die Zeichnerei in der Picturebox soweit im Griff, indem ich nur noch mit Pixeln statt wie in vb6 mit komfortableren Millimeter arbeite.
Probleme macht mir die Geschwindigkeit der Zeichnerei in der Picturebox.
In vb6 hatte ich Anfangs die gleiche Schwierigkeit, dort hatte ich das folgendermaßen gelöst:
- 2 Pictureboxen, einmal die für den Benutzer sichtbare (PictureBox1) und eine unsichtbare mit gleichen Einstellungen (PictureBoxBuffer) mit visible=false
- Zeichnen der Projektelemente (Linien, Rechtecke, Texte,... ca. 20-30 tausend) in unsichtbaren PictureboxBuffer
- Nachdem alle Elemente gezeichnet sind => PictureBox1.Picture=PictureBoxBuffer.Image (im Prinzip das in der unsichtbaren PB gezeichnete Bild in die sichtbare PB kopieren)
Das war sauschnell, das Neuzeichnen von ca. 50.000 Elementen erfolgte praktisch ohne Zeitverzug
Wenn ich jetzt in vb.net den gleichen Ansatz verfolge, habe ich folgende Probleme:
- .Picture gibt es nicht mehr bei der PictureBox
- PictureBox1.Image=PictureBoxBuffer.Image führt zu einem weißen Bild
- Wenn ich die PictureBox1 auf visible=false stelle, dann zeichne und danach visible=true mache, ist die PB ebenfalls leer, irgendwie wird beim Umstellen das eben gezeichnete gelöscht
Im Moment komme ich nicht richtig weiter und hoffe mir kann jemand einen hilfreichen Tip geben, im Prinzip geht es nur darum sehr viele Zeichenelemente wie Linien oder Rechtecke auf einer PB als Zeichenfläche zu malen und das so schnell, das es (fast) in Echtzeit geschieht.
Vielen Dank für eure Kommentare im Voraus
Sascha