VB.Net Tool TextBox Zeichen je Zeile begrenzen
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 41 Antworten in diesem Thema. Der letzte Beitrag () ist von Naifu.
-
-
Wie ist denn dein Ansatz? Wo steckst du fest?
-
Die Frage ist auch, was heißt "begrenzen"? Automatischer Zeilenumbruch oder Verhindern weiterer Eingaben?
So oder so, hier 2 mögliche Ansätze:
social.msdn.microsoft.com/Foru…rms-vbnet?forum=vbgeneral
social.msdn.microsoft.com/Foru…-per-line?forum=vbgeneral -
ich wurde gern die Eingabe ab einer bestimmten Zeichen Anzahl blockieren und den Nutzer zur Eingabe in der nächsten Zeile zwingen.
Bei einem weichen Zeilenumbrunch wird die Eingabe nicht als String der nächsten Line übernommen, sondern es wird beim Ausdruck einfach abgebrochen.
Ich geb eich einfach mal meinen Code, dass ihr seht wo ich stehe.
VB.NET-Quellcode
- Public Class Form1
- Private Const V As String = "http_requester/0.1"
- Private Sub PSRetTool_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Me.BackColor = Color.FromArgb(0, 204, 204)
- Txt_IP.Text = Environment.GetEnvironmentVariable("LabelPrintMessi", 1)
- End Sub
- Private Sub Btn_Exit_Click(sender As Object, e As EventArgs) Handles Btn_Exit.Click
- Me.Close()
- End Sub
- Private Sub PictureBox1_MouseHover(sender As Object, e As EventArgs) Handles PictureBox1.MouseHover
- Dim tt As New ToolTip()
- tt.SetToolTip(PictureBox1, "matze......com")
- End Sub
- Private Sub Chk_MostTop_CheckedChanged(sender As Object, e As EventArgs) Handles Chk_MostTop.CheckedChanged
- If Chk_MostTop.Checked = True Then
- Me.TopMost = True
- Else
- Me.TopMost = False
- End If
- End Sub
- Private Sub Btn_Save_Click(sender As Object, e As EventArgs) Handles Btn_Save.Click
- Environment.SetEnvironmentVariable("LabelPrintMessi", Txt_IP.Text, 1)
- End Sub
- Private Sub Btn_print_Click(sender As Object, e As EventArgs) Handles Btn_print.Click
- Call Replacer()
- Call Drucken()
- TXT_Case.Clear()
- TXT_Order.Clear()
- TXT_Shipping.Clear()
- TXT_Kommentar.Clear()
- TXT_EAN.Clear()
- TXT_QL.Clear()
- End Sub
- Sub Replacer()
- TXT_Kommentar.Text = TXT_Kommentar.Text.Replace("Ä", "Ae")
- TXT_Kommentar.Text = TXT_Kommentar.Text.Replace("ä", "ae")
- TXT_Kommentar.Text = TXT_Kommentar.Text.Replace("Ö", "Oe")
- TXT_Kommentar.Text = TXT_Kommentar.Text.Replace("ö", "oe")
- TXT_Kommentar.Text = TXT_Kommentar.Text.Replace("Ü", "Ue")
- TXT_Kommentar.Text = TXT_Kommentar.Text.Replace("ü", "ue")
- TXT_Kommentar.Text = TXT_Kommentar.Text.Replace("ß", "ss")
- End Sub
- Sub Drucken()
- Dim url As String
- Dim zpl As String
- Dim lines() As String
- 'lines = RTBComment.Text.Split(Environment.NewLine)
- zpl = "^XA^PW1000^CFB,40,20"
- If TXT_Case.Text <> "" Then zpl += "^FO150,100^BY3^BCN,80,N,N^FD" & TXT_Case.Text & "^FS^FO330,200^FD" & TXT_Case.Text & "^FS"
- If TXT_Order.Text <> "" Then zpl += "^FO150,300^BY3^BCN,80,N,N^FD" & TXT_Order.Text & "^FS^FO330,400^FD" & TXT_Order.Text & "^FS"
- If TXT_Shipping.Text <> "" Then zpl += "^FO150,500^BY3^BCN,80,N,N^FD" & TXT_Shipping.Text & "^FS^FO330,600^FD" & TXT_Shipping.Text & "^FS"
- If TXT_EAN.Text <> "" Then zpl += "^FO150,1900^BY3^BCN,80,N,N^FD" & TXT_EAN.Text & "^FS^FO330,2000^FD" & TXT_EAN.Text & "^FS"
- If TXT_QL.Text <> "" Then zpl += "^FO150,2100^BY3^BCN,80,N,N^FD" & TXT_QL.Text & "^FS^FO330,2200^FD" & TXT_QL.Text & "^FS"
- zpl += "^CFc,50,30"
- If TXT_Kommentar.Lines.Length >= 1 Then zpl += "^FO10,770^FD" & TXT_Kommentar.Lines(0) & "^FS"
- If TXT_Kommentar.Lines.Length >= 2 Then zpl += "^FO10,830^FD" & TXT_Kommentar.Lines(1) & "^FS"
- If TXT_Kommentar.Lines.Length >= 3 Then zpl += "^FO10,890^FD" & TXT_Kommentar.Lines(2) & "^FS"
- If TXT_Kommentar.Lines.Length >= 4 Then zpl += "^FO10,950^FD" & TXT_Kommentar.Lines(3) & "^FS"
- If TXT_Kommentar.Lines.Length >= 5 Then zpl += "^FO10,1010^FD" & TXT_Kommentar.Lines(4) & "^FS"
- If TXT_Kommentar.Lines.Length >= 6 Then zpl += "^FO10,1070^FD" & TXT_Kommentar.Lines(5) & "^FS"
- If TXT_Kommentar.Lines.Length >= 7 Then zpl += "^FO10,1130^FD" & TXT_Kommentar.Lines(6) & "^FS"
- If TXT_Kommentar.Lines.Length >= 8 Then zpl += "^FO10,1190^FD" & TXT_Kommentar.Lines(7) & "^FS"
- If TXT_Kommentar.Lines.Length >= 9 Then zpl += "^FO10,1250^FD" & TXT_Kommentar.Lines(8) & "^FS"
- If TXT_Kommentar.Lines.Length >= 10 Then zpl += "^FO10,1310^FD" & TXT_Kommentar.Lines(9) & "^FS"
- If TXT_Kommentar.Lines.Length >= 11 Then zpl += "^FO10,1370^FD" & TXT_Kommentar.Lines(10) & "^FS"
- If TXT_Kommentar.Lines.Length >= 12 Then zpl += "^FO10,1430^FD" & TXT_Kommentar.Lines(11) & "^FS"
- If TXT_Kommentar.Lines.Length >= 13 Then zpl += "^FO10,1490^FD" & TXT_Kommentar.Lines(12) & "^FS"
- If TXT_Kommentar.Lines.Length >= 14 Then zpl += "^FO10,1550^FD" & TXT_Kommentar.Lines(13) & "^FS"
- If TXT_Kommentar.Lines.Length >= 15 Then zpl += "^FO10,1610^FD" & TXT_Kommentar.Lines(14) & "^FS"
- zpl += "^CFB,40,20" &
- "^FO10,200^FDcase no.^FS" &
- "^FO10,400^FDorder no.^FS" &
- "^FO10,600^FDshipping no.^FS" &
- "^FO10,2000^FDEAN^FS" &
- "^FO10,2200^FDQL^FS" &
- "^FO1,750^GB980,930,5^FS" &
- "^FO20,700^CFB,40,30^FDcomment^FS" &
- "^XZ"
- 'url = "http://" & Txt_IP.Text & "/pstprnt"
- 'WRequest(url, "POST", zpl)
- Debug.Print(zpl)
- End Sub
- Shared Function WRequest(URL As String,
- method As String,
- POSTdata As String) As String
- Dim responseData As String = ""
- Dim cookieJar As New Net.CookieContainer()
- Dim hwrequest As HttpWebRequest = WebRequest.Create(URL)
- hwrequest.CookieContainer = cookieJar
- hwrequest.Accept = "*/*"
- hwrequest.AllowAutoRedirect = True
- hwrequest.UserAgent = V
- hwrequest.Timeout = 60000
- hwrequest.Method = method
- If hwrequest.Method = "POST" Then
- hwrequest.ContentType = "application/x-www-form-urlencoded"
- Dim encoding As New Text.ASCIIEncoding()
- Dim postByteArray() As Byte = encoding.GetBytes(POSTdata)
- hwrequest.ContentLength = postByteArray.Length
- Dim postStream As IO.Stream = hwrequest.GetRequestStream()
- postStream.Write(postByteArray, 0, postByteArray.Length)
- postStream.Close()
- End If
- Dim hwresponse As Net.HttpWebResponse = hwrequest.GetResponse()
- If hwresponse.StatusCode = Net.HttpStatusCode.OK Then
- Using responseStream As New StreamReader(hwresponse.GetResponseStream())
- responseData = responseStream.ReadToEnd()
- End Using
- End If
- hwresponse.Close()
- Return responseData
- End Function
- Private Sub TXT_Kommentar_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
- 'Zeilenzahl im Kommentarfeld begrenzen
- If e.KeyChar = vbCr Then
- 'If RTBComment.Lines.Length = 15 Then
- If TXT_Kommentar.Lines.Length = 5 Then
- e.Handled = True
- End If
- End If
- End Sub
- End Class
Gruß Matze -
Probier mal:
VB.NET-Quellcode
- Private Const charMax As Integer = 3
- Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
- Dim tb As TextBox = DirectCast(sender, TextBox)
- With tb
- If .Multiline Then
- For Each line As String In .Lines
- If line.Length > charMax Then
- .Text = .Text.Insert(.Text.Length - 1, vbCrLf)
- .SelectionStart = .TextLength
- End If
- Next
- End If
- End With
- End Sub
-
-
@matze.tele
Freut mich wenn es hilfreich für dich ist. -
-
Na, probieren wir es aus:
VB.NET-Quellcode
- Private Const charMax As Integer = 3
- Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
- TextLength(DirectCast(sender, TextBoxBase))
- 'Dim tb As TextBox = DirectCast(sender, TextBox)
- 'With tb
- ' If .Multiline Then
- ' For Each line As String In .Lines
- ' If line.Length > charMax Then
- ' .Text = .Text.Insert(.Text.Length - 1, vbCrLf)
- ' .SelectionStart = .TextLength
- ' End If
- ' Next
- ' End If
- 'End With
- End Sub
- Private Sub RichTextBox1_KeyUp(sender As Object, e As EventArgs) Handles RichTextBox1.KeyUp
- TextLength(DirectCast(sender, TextBoxBase))
- 'Dim tb As RichTextBox = DirectCast(sender, RichTextBox)
- 'With tb
- ' If .Multiline Then
- ' For Each line As String In .Lines
- ' If line.Length > charMax Then
- ' .Text = .Text.Insert(.Text.Length - 1, vbCrLf)
- ' .SelectionStart = .TextLength
- ' End If
- ' Next
- ' End If
- 'End With
- End Sub
- Private Sub TextLength(tbb As TextBoxBase)
- With tbb
- If .Multiline Then
- For Each line As String In .Lines
- If line.Length > charMax Then
- .Text = .Text.Insert(.Text.Length - 1, vbCrLf)
- .SelectionStart = .TextLength
- End If
- Next
- End If
- End With
- End Sub
-
ich habe doch noch ein Problem, wenn ich per copy paste etwas einfüge
z.B.
Stępień Potok Górny 89
3-423 Potok Górny
PL
dann wird mir das PL getrennt in mehreren Zeilen dargestellt
P
L
und auch änderungen sind nicht möglich, nach copy & paste
@Naifu hast du da vlt eine Lösung?Gruß MatzeDieser Beitrag wurde bereits 2 mal editiert, zuletzt von „matze.tele“ ()
-
OK, ab diesem Punkt würde ich vorschlagen du studierst den Code und verstehst was und warun es schief läuft.
-
Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed
Leider verstehe ich nicht alles im Code.
Gruß MatzeDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()
-
Quasi-Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed
Ich bin ganz schlecht im Würmer aus der Nase ziehen, also, was verstehst du nicht?
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()
-
hier ist mir klar, dass die zeichenanzahl mit der vorgegebenen zahl verglichen wird und wenn sie größer ist dann ... ??? und das für jede zeile,
aber was mit dem text passiert, leuchtet mir nicht ein.Gruß Matze -
OK, setzt mal einen Breakpoint auf "With tbb".
Starte das Prog, paste deinen Text rein.
Wenn das Programm stoppt, dann eine Überwachung für "tbb.Lines" und für "tbb.Text" einfügen.
Debugge Zeile für Zeile und beobachte was in de Überwachungen geschiet. -
NameWertTyp
Lines error BC30451: "Lines" wurde nicht deklariert. Aufgrund der Schutzstufe ist unter Umständen kein Zugriff möglich.
NameWertTyp
Text "PSRet-Tool" String
da werd ich nicht schlau draus
den Haltepunkt hab ich, aber die Überwachung klappt wohl nicht richtig, sry
ich sehe nicht, dass da irgendetwas passiert.
ich habe die Überwachung bisher nicht benutzt.Gruß MatzeDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „matze.tele“ ()
-
matze.tele schrieb:
ich habe die Überwachung bisher nicht benutzt
Ups, dann wast du im Blindflug unterwegs, so sollte das aussehen: -
-
Machmal ein Bild.
-
-
Ähnliche Themen
-
Textbox Zeile begrenzen (Nicht MaxLengh)
TheGameSiders - - Sonstige Problemstellungen -
Thomas2705 - - Sonstige Problemstellungen
-
6 Benutzer haben hier geschrieben
- matze.tele (19)
- Naifu (18)
- Marcus Gräfe (2)
- ThomasG82 (1)
- RodFromGermany (1)
- petaod (1)