Drawstring

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von TheoTechnic.

    Problem 1:
    also ich versuch gerade die fontfamlily in eine listbox zu laden.
    das klappt auch soweit ganz gut. nur will ich jetzt,dass in der listbox folgendes items entfernt werden
    • entfernen.Add("[")
    • entfernen.Add("]")
    • entfernen.Add("")
    • entfernen.Add("=")
    • entfernen.Add("Name")
    • entfernen.Add(":")
    • entfernen.Add("FontFamily")
    d.h es soll nur noch der fontname da stehen. :)

    Problem 2:
    wie kann ich,wenn ich einen text in eine picturebox zeichne, die farbe des brushes einstellen

    VB.NET-Quellcode

    1. g.DrawString(TextBox1.Text, New Font(Schriftart, 12, FontStyle.Regular, GraphicsUnit.Pixel), Brushes."colordialog.color", 250, 2)
    hoffe ihr versteht was ich meine ^^

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

    jvbsl schrieb:

    Brushes."colordialog.color"-> New SolidBrush(Colordialog.Color)

    kleines problem hier zu noch.
    wenn ich den solid brush deklariert habe und wenn das paint event aktiv ist,hängt sich immer die anwendung auf. d.h ich kann während dem bearbeiten die farbe nicht ändern.

    VB.NET-Quellcode

    1. Try
    2. Dim brush = New SolidBrush(PictureBox1.BackColor)
    3. e.Graphics.DrawString(TextBox1.Text, New Font(ListBox1.Text, NumericUpDown1.Value, FontStyle.Regular, GraphicsUnit.Pixel), brush, NumericUpDown2.Value, NumericUpDown3.Value)
    4. PictureBox2.SizeMode = PictureBoxSizeMode.StretchImage
    5. PictureBox2.Image = PictureBox1.Image
    6. Catch ex As Exception
    7. MsgBox(ex.Message)
    8. End Try


    wenn ich das problem gelöst bekomme,wäre mein programm fast fertig ^^
    sry das ich so nerve :P
    habe immer leichte anlaufschwierigekeiten.

    außerdem lässt sich das bild nicht wirklich speichern.
    der background wird zwar gespeichert,aber der text nicht :S

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Dim savefiledialog1 As New SaveFileDialog
    3. savefiledialog1.Filter = "JPEG Image|*.jpg|PNG Image|*.png|Gif Image|*.gif|Bitmap Image|*.bmp"
    4. If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    5. Select Case SaveFileDialog1.FilterIndex
    6. Case 1
    7. PictureBox2.Image.Save(savefiledialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
    8. Case 2
    9. PictureBox2.Image.Save(savefiledialog1.FileName, System.Drawing.Imaging.ImageFormat.Png)
    10. Case 3
    11. PictureBox2.Image.Save(savefiledialog1.FileName, System.Drawing.Imaging.ImageFormat.Gif)
    12. Case 4
    13. PictureBox2.Image.Save(savefiledialog1.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
    14. End Select
    15. End If

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

    könnemer 1 nachm annern?

    VB.NET-Quellcode

    1. Try
    2. Dim brush = New SolidBrush(PictureBox1.BackColor)
    3. e.Graphics.DrawString(TextBox1.Text, New Font(ListBox1.Text, NumericUpDown1.Value, FontStyle.Regular, GraphicsUnit.Pixel), brush, NumericUpDown2.Value, NumericUpDown3.Value)
    4. PictureBox2.SizeMode = PictureBoxSizeMode.StretchImage
    5. PictureBox2.Image = PictureBox1.Image
    6. Catch ex As Exception
    7. MsgBox(ex.Message)
    8. End Try

    Also der TryCatch scheint mir so weniger sinnvoll.
    Das PaintEvent wird immer gefeuert, wenn das Control neu gezeichnet wird. Dabei entsteht vmtl. ein Fehler.
    Wenn sich also die msgbox öffnet, wird das control verdeckt, und wenn die msgbox geschlossen wird, muß das Control diesen bereich wieder neu zeichnen. Dabei entsteht ein Fehler, und die msgbox wird angezeigt. Wenn dann die msgbox geschlossen wird, muß das Control diesen bereich wieder neu zeichnen. Dabei entsteht ein Fehler, und die msgbox wird angezeigt. Wenn dann die msgbox geschlossen wird, muß das Control diesen bereich wieder neu zeichnen. Dabei entsteht ein Fehler, und die msgbox wird angezeigt.

    Usw. ;)

    vlt. meinteste das ja damit, dasses sich aufhängt.

    ich täte bevorzugen, den trycatch und die msgbox wegzumachen.
    dann tritt der Fehler auch auf, und du kannst mal die Fehlermeldung posten, und die fehlerzeile angeben.

    AvoidTryCatch

    wamborambo schrieb:

    außerdem lässt sich das bild nicht wirklich speichern




    Erstelle eine neue Instanz der Klasse Bitmap und weise ihr als Bild das Bild zu, dass auch später als "Malgrundlage" dienen soll. Erstelle eine neue Instanz von der Klasse Graphics und weise ihr mit der Methode .FromImage die Bitmap zu. Jetzt kannst du auf die Graphics Instanz (und damit auch auf die Bitmap) malen und dann die Bitmap speicher.

    So sieht das ganze dann als Code aus:

    VB.NET-Quellcode

    1. Dim TempBMP As Bitmap = My.Resources.Beispielbild
    2. Dim TempGra As Graphics = Graphics.FromImage (TempBMP)




    Viel Spaß,

    TheoTechnic