[GELÖST] Inhalt der PictureBox auf Desktop speichern

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von SpaceyX.

    [GELÖST] Inhalt der PictureBox auf Desktop speichern

    Sehr geehrte Forummitglieder,
    ich habe ein Programm geschrieben das ein Screenshot vom Bildschirm macht und dieses in einer PictureBox ausgibt. Das funktioniert auch sehr gut.
    Als nächstes möchte ich einen Button hinzufügen der bei einem Klick darauf das Bild das eben in der PictureBox ausgegeben wird, auf einem festgelegtem Pfad speichert.

    Wie kann ich das bewerkstelligen?
    Ich habe jetzt schon über eine Stunde im Internet nach einer Lösung gesucht, aber ich komme nicht wirklich weiter.
    Kann mir jemand helfen?

    LG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Anonymous“ ()

    Anonymous schrieb:

    habe jetzt schon über eine Stunde im Internet nach einer Lösung gesucht
    Halt ich für sehr unwahrscheinlich. Natürlich kanns auch sein, dass du die ganze Zeit nach Driss gesucht hast.
    Die PictureBox hat ne Image-Property, die vom Typ Image ist. Guck dir die Methoden des Image-Typs mal im Objektbrowser an, da ist eine dabei, die genau das tut, was du möchtest.

    Oder gib ihm halt C&P, ohne Dinge zu erklären.

    filmee24 schrieb:

    picturebox.image.save()


    Hab das mal so übernommen.

    Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. PictureBox.Image.Save = ("F:\Screen\bild.jpg")
    3. End Sub


    In die Klammer habe ich dann den Pfad geschrieben. Resultat: Klappt nicht.

    @Samus Aran, ok werd mal nachschauen thx

    EDIT: Ok jetzt klappt es, ich musste PictureBox1.Image.Save schreiben anstatt PictureBox.Image.Save...
    Wenn du geschrieben hättest NameDerPictureBox.Image.Save() oder so ähnlich, hätte ich gleich gewusst was du meinst.

    DANKE

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Anonymous“ ()

    1. Es gibt die Möglichkeit, ein Topic als "erledigt" zu kennzeichnen. Wenn du das korrekt machst (nicht mit "gelöst" im Titel), dann wirst du vielleicht auch noch Antworten bekommen.

    Das Thema Option Strict ON ist ein häufiges hier im Forum. Die Suchfunktion spuckt hier zahlreiche Posts aus, die hier sicher auch dazu Auskunft geben.

    Bevor du weiterliest, schau mal diesen Post an, und versuche zu verstehen:
    [Allgemein] Was ist eig so schlecht an Option Strict OFF?

    Option Strict zwingt dich, dich an gewisse Konventionen zu halten (z.B. die korrekte Verwendung von Datentypen und Umwandlungsfunktionen). Du erschaffst dir keine künstlichen Probleme, sondern du deckst nur die Probleme auf, die du eigentlich schon im Quellcode hast. Wenn du das nicht verwendest, kann es - siehe mein Link - zu Resultaten führen, die auf den ersten Blick richtig sind, im Endeffekt aber doch FALSCH! Option Strict On nicht zu verwenden ist nur dann ratsam, wenn man genau(!) weiß, was man macht. Die coolen Jungs von C# regen sich auch nicht auf, dass sie Variablen strikt typisieren müssen. Dort ist das nämlich Pflicht, und das ohne Ausschalter!
    Du schaffst mit OPTION STRICT ON Probleme aus der Welt. Probleme, die erst während der Laufzeit auftreten können.

    Folgendes Beispiel.

    VB.NET-Quellcode

    1. Option Strict Off
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    4. Dim zahlA As Double = Me.TextBox1.Text
    5. Dim zahlB As Double = Me.TextBox2.Text
    6. Dim ergebnis As Double = zahlA + zahlB
    7. MessageBox.Show(ergebnis)
    8. End Sub
    9. End Class


    Mit Option Strict Off bekommst Du während der Entwicklung vom Compiler keinen Fehler angezeigt. Er konvertiert selbständig den TextBox.Text in einen Double-Datentyp. Das Programm läuft wunderbar, bis einer Deiner Anwender auf die Idee kommt, einen Buchstaben in eine TextBox einzugeben. Das Programm crasht, es muss crashen, da ein Buchstabe keine Zahl sein kann.

    So ists richtig:

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    4. Dim zahlA As Double = 0
    5. Dim zahlB As Double = 0
    6. Dim ergebnis As Double = 0
    7. If Not Double.TryParse(Me.TextBox1.Text, zahlA) Then
    8. MessageBox.Show("Es sind nur Zahlen erlaubt")
    9. Exit Sub
    10. End If
    11. If Not Double.TryParse(Me.TextBox2.Text, zahlB) Then
    12. MessageBox.Show("Es sind nur Zahlen erlaubt")
    13. Exit Sub
    14. End If
    15. ergebnis = zahlA + zahlB
    16. MessageBox.Show(ergebnis.ToString("N2"))
    17. End Sub
    18. End Class


    Schaltest Du nun Option Strict On, so bekommst Du Fehler, dass eine implizite Konvertierung von String zu Doulbe unzulässig ist. Das heisst für Dich, Du bist selber verantwortlich dafür, dass die Datentypen stimmen. Und diesen Fehler bekommst Du bereits zur Entwicklungszeit und kannst ihn sofort beheben. Du musst Dich selber darum kümmern, dass der TextBox.Text korrekt in einen Double umgewandelt wird. Die Tatsache, dass Du diesen wichtigen Hinweis bereits bei der Entwicklung bekommst, ist von unschätzbarem Wert.

    Option Strict ON hindert Dich daran, Äpfel mit Birnen zu verwechseln. Es ist die grösstmögliche Hilfe, die Du haben kannst.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o