Text mit CRLF als eine Zeile in eine nicht Multiline-Textbox Einfügen

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von xChRoNiKx.

    Text mit CRLF als eine Zeile in eine nicht Multiline-Textbox Einfügen

    Heyho,

    ich hab eine kleines Problem, un zwar habe ich eine Textbox die nicht Multiline ist,
    in der möchte ich gerne beliebigen Text per STRG+V einfügen.
    Funktioniert natürlich auch soweit. Allerdings sobald im Text "CRLF" also ein Umbruch vorkommt
    oder eine NewLine wie auch immer bekomme ich nur die erste Line vor dem Umbruch in die Textbox.

    Gibt es irgendeine Möglichkeit der Textbox zu sagen "ignoriere Umbrüche und stopfe alles in eine Zeile"?
    Per Google fand ich Lösungen die dann das STRG+V abfangen und verändern was ich nicht sehr sauber finde.

    Daher gibt es da noch andere Lösungen ?
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Ist aber auch das einzige, was mir einfallen würde. Irgendwie muss man ja den ClipboardText filtern/umwandeln.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub TextBox1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown
    2. If e.Control AndAlso e.KeyCode = Keys.V Then
    3. Dim ClipboardText = Clipboard.GetText
    4. ClipboardText = ClipboardText.Replace(Microsoft.VisualBasic.vbCrLf, Microsoft.VisualBasic.vbCr).Replace(Microsoft.VisualBasic.vbCr, "")
    5. Clipboard.SetText(ClipboardText)
    6. End If
    7. End Sub

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hey,

    ich danke erstmal soweit an das PreviewKeyDown-Event hatte ich ja gar nicht gedacht.
    So sieht meine C# Lösung aus die genauso funktioniert.

    C#-Quellcode

    1. private void tb_filmtitel_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
    2. {
    3. if ( e.Control && e.KeyCode == Keys.V)
    4. {
    5. string tmpstr = Clipboard.GetText();
    6. tmpstr = tmpstr.Replace(Environment.NewLine, " ");
    7. Clipboard.SetText(tmpstr);
    8. }
    9. }


    Natürlich sind auch noch andere Lösungswege gerne gesehen wenn da jemand was hat für die Zukunft.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen