【发布时间】:2013-08-26 18:58:11
【问题描述】:
我有一个 textbox 并将 multiline 设置为 true。我想将 max characters 设置为 每行 50 个,总共 3 行。当他们达到 50 个字符时,我希望它跳到第二行。
我遇到了一些问题,并且已经为此苦苦挣扎了一段时间,想知道是否有人可以提供帮助。
MAX_LINE_COUNT = 3
Private Sub txtMsg_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtMsg.KeyDown
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = (Me.txtMsg.Lines.Length >= MAX_LINE_COUNT)
End If
End Sub
【问题讨论】:
-
@Mertis,我已经更新了我的代码
-
Lines是一个数组,因此您的代码将无法工作,因为您检查的是文本框中的行数,而不是单行中的字符数。 -
你必须想出你自己的代码。检查长度是否符合您的要求并新建一行(例如:SendKeys.Send("{Enter}") 模拟回车)。另请记住,您必须检查 textBox.Width 属性。这是“蹩脚”的方法。一般来说,在对输入文本做更多或更少花哨的事情时,您应该依赖 RichTextBox 控件(允许您做比 TextBox 更多的事情)。更好的方法是使用自己的属性创建自己的文本框。无论如何,没有太多解释,只是写代码。