Textbox Zeile begrenzen (Nicht MaxLengh)

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von rotherford.

    Textbox Zeile begrenzen (Nicht MaxLengh)

    Hi.
    Ich möchte, dass man in der Textbox nur so viel eingeben kann, wie sie auch lang ist.
    Multiline ist Off und über MaxLengh möchte ich das nicht machen, weil das nicht in meinem Sinne ist.
    Also wie kann ich diese Textbox begrenzen?
    Hab in den Properties nichts auf dem ersten Blick brauchbares gefunden.
    Danke.
    Mfg.
    TS

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    2. Using g As Graphics = TextBox1.CreateGraphics()
    3. If g.MeasureString(TextBox1.Text & e.KeyChar, TextBox1.Font).Width > TextBox1.Width Then
    4. e.Handled = True
    5. End If
    6. End Using
    7. End Sub

    VB.NET-Quellcode

    1. Sub AutoSize(Byval T as TextBox)
    2. Dim G = T.CreateGraphics()
    3. Do
    4. T.Text = T.Text.Remove(T.Text.Length -1)
    5. Loop Until G.MeasureString(T.Text,T.Font).Width <= T.Width
    6. G.Dispose()
    7. End Sub

    /nicht getestet

    Wahrscheinlich gibt es auch eine bessere Methode :P
    /nicht getestet