Automatischen Zeilenumbruch in Textbox

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Automatischen Zeilenumbruch in Textbox

    Hallo Zusammen,
    ich habe ein Programm geschrieben mit dem wir unsere Briefvorlagen beschreiben. Dabei tippe ich meinen Brieftext in eine Textbox ein und dieser wird dann auf meine Briefvorlage gezeichnet.

    Dies allein ist bereits realisiert. Ich benötige nun dringend Hilfe bei folgender Funktion:
    Ich möchte in meiner Multiline Textbox einen automatischen Zeilenumbruch realisieren!!
    Wenn eine Zeichenzahl von X erreicht ist soll automatisch ein Zeilenumbruch erzeugt werden und in der nächsten Zeile weiter geschrieben werden. Das kann doch nicht so schwer sein oder?
    In der Textbox springt der Text zwar in die nächste Zeile der Textbox, allerdings nur optisch. Der String bleibt am Stück und da ich diesen nachher auf mein Bild schreibe, ist es wichtig das die Umbrüche vorhanden sind!!

    DrVisualBasic schrieb:

    In der Textbox springt der Text zwar in die nächste Zeile der Textbox, allerdings nur optisch. Der String bleibt am Stück und da ich diesen nachher auf mein Bild schreibe, ist es wichtig das die Umbrüche vorhanden sind!!

    Dann zeichnest du falsch. GDI kann genauso hübsche automatische Zeilumbrüche zeichnen, wie eine Multiline-Textbox.

    Mit einfügungen nach bestimmter Zeichen-Anzahl fliegt man auf die Nase, denn bei den Proportional-Schriften sind die Buchstaben unterschiedlich breit, also um eine Zeile mit
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    zu füllen bracht man wesentlich mehr Zeichen als bei
    MMMMMMMMMMM
    Außerdem:
    Was willst Du machen, wenn eine innere Zeile editiert wird?
    Sollen bei Textlöschung die eingefügten Zeilenumbrüche wieder entfernt werden?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Schaut euch bitte mal meinen Anhang an. So sieht meine Programmoberfläche aus. Die Textboxen auf der Rechten Seite werden ausgefüllt und auf die Picturebox übertragen. Das klappt soweit auch sehr gut. Betätigt man den "Öffnen" Button wird die Picturebox wie folgt beschrieben:



    VB.NET-Quellcode

    1. Dim bmp As New Bitmap(My.Resources.Weiß)Dim gr As Graphics = Graphics.FromImage(bmp)
    2. gr.DrawString("Adresse...", New Font("Arial", 25, FontStyle.Underline), Brushes.Black, EigeneAdressePosition)
    3. gr.DrawString("Max Mustermann" & vbNewLine & "Musterstrasse 49" & vbNewLine & "45145 Essen", New Font("Arial", 30), Brushes.Black, AdressePosition.X, AdressePosition.Y)
    4. gr.DrawString("Testseite für den Brief Designer", New Font("Arial", 30, FontStyle.Bold), Brushes.Black, BetreffPosition)
    5. gr.DrawString("Esssen, " & DateTime.Now.Date, New Font("Arial", 30, FontStyle.Bold), Brushes.Black, DatumPosition)
    6. gr.DrawString(BriefTextbox.Text & vbNewLine & vbNewLine & "Mit freundlichen Grüßen," & vbNewLine & AbsenderTextbox.Text, New Font("Arial", 30, FontStyle.Regular), Brushes.Black, TextPosition)
    7. gr.Dispose()
    8. PictureBox1.BackgroundImage = bmp
    9. PictureBox1.BackgroundImage.Save("C:\...\Brief " & DateTime.Now.Date & ".jpg", Imaging.ImageFormat.Jpeg)
    10. Process.Start("C:\...\Brief " & DateTime.Now.Date & ".jpg")


    Ich hätte aber gerne eine Live Vorschau. Das heisst ich baue die Funktion in das TextChanged Event der Textbox ein. Leider ist die Funktion zu Ressourcen lastig :(

    Ich müsste daher das Paint Event nehmen und e.graphics verwenden. Das Bild in meiner Picturebox ist allerdings in wirklichkeit 2480 zu 3508 Pixel groß und von daher benötige ich eine Schriftgröße von ca. 30!!


    Das Background Image wird von der Picturebox via Zoom Layout angepasst. Wenn ich den Text mit dem Paint Event auf das Bild schreibe ist der Text aber riesig und entspricht nicht dem original? Was mache ich da?
    Bilder
    • Unbenannt.JPG

      104,29 kB, 753×679, 406 mal angesehen
    Arbeite gleich mit einem PrintPreview, nicht mit einer PictureBox.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Sorry, PrintPreviewControl.
    Lies mal in der MSDN.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Was mir auch schon helfen würde, wäre wenn mir jemand sagt wie ich das Problem löse das der text immer aus dem bild hinaus läuft. Man muss immer manuell Ein Zeilenumbruch in der Textbox machen, was ohne live vorschau sehr umständlich ist.. Kann man das nicht automatisieren?
    Bilder
    • wd.JPG

      110,45 kB, 764×678, 404 mal angesehen