vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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 - Fortgeschrittene
Picturebox mit GDI+-Zeichnungen trotzdem wieder leer? Als .bmp speichern? 
Autor: t.rieche
Datum: 14.10.08 16:06

Hallo,
ich hab folgende Probleme:
ich zeichne auf eine Picturebox per GDI+ ein Diagramm.
Das Zeichnen wird gleich durch das Load-Ereignis eines Forms aufgerufen.
Zuerst führe ich noch dies durch, um die Picturebox zu bereinigen:

PictureBox1.Refresh()
Anschließend kommen die besagten Linien,...: (Beispiel)

Dim strecke As System.Drawing.Graphics
                strecke = PictureBox1.CreateGraphics()
                strecke.DrawLine(New Pen(Brushes.Black, 1), 1, 1, 5, 5)
                strecke.Dispose()
Für ein paar Sekunden erscheint auch das gezeichnete, aber danach ist es gleich wieder weiß, also leer.

Deswegen habe ich mir ein Button gemacht, der nochmal dieselbe Zeichnenfunktion aufruft, und dann werden alle Linien gezeichnet, und bleiben auch da.
Wie kann ich einen Button (oder ein anderes zusätzliches Ereignis) umgehen?

2.Problem
Ich möchte das gezeichnete Diagramm als Bilddatei (zb .bmp) speichern. Zu diesem Problem gibt es zwar viele Antworten, doch irgendwie nicht genau für meins.
- ich kann nicht direkt
PictureBox1.Image.Save("C:\test.bmp", ...
ausführen, da der Picturebox vorher kein Bild (Image) zugewiesen wurde.
- die Möglichkeit mit einem Bitmap-Objekt:
Dim bmp As New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
        Me.PictureBox1.Image = DirectCast(bmp, Image)
        Dim graphic As Graphics = Graphics.FromImage(Me.PictureBox1.Image)
        graphic.FillRectangle(Brushes.White, New RectangleF(0, 0, _
          Me.PictureBox1.Image.Width, Me.PictureBox1.Image.Height))
        graphic.DrawRectangle(Pens.Blue, New Rectangle(10, 10, 30, 30))
        PictureBox1.Image.Save("C:\test.bmp", _
          System.Drawing.Imaging.ImageFormat.Bmp) 'kein Fehler mehr!
(kopiert von einem anderen Forenbeitrag)

Was bewirkt hier das "DirectCast(bmp, Image)" ?

bei mir enthält die abgespeicherte Bilddatei nur die beiden Rechtecke, die hier extra gezeichnet wurden, ich möchte doch aber gerne alle bisher gezeichneten Linien, die sich auf der Picturebox befinden, in der neuen Bilddatei haben?

Sonst müsste ich den kompletten Zeichenvorgang doppelt für die Bilddatei schreiben?

Vielleicht gibt es eine Lösung für mein Problem?
Vielen Dank für eure ANtworten, Anregungen,...
mfg rieche
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Picturebox mit GDI+-Zeichnungen trotzdem wieder leer? Als .b...2.402t.rieche14.10.08 16:06
Re: Picturebox mit GDI+-Zeichnungen trotzdem wieder leer? Al...1.202ModeratorFZelle15.10.08 09:43

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