在RichTextBox_TextChanged
事件下,我有
if RichTextBox.Lines.Count() > 2
{
//Message Box to display the user that you are typing more than 2 lines
}
所以我发生的是当我在
中有这些数据时 [0] - "East coast road"
[1]- "New York"
富文本框,当我点击Enter时,似乎它进入了这种状态
[0] - "East coast road"
[1]- "New York"
[2] -""
我收到弹出框的消息说不能超过2行,但是最后一行只是一个空行?
如何处理富文本框中的行限制或我如何处理 确保当用户点击Enter时我不会移动到下一行 仅当富文本中有1行时才移动到下一行 箱?
这会将计数返回到3,其中应该只有2,如何消除下一行的空格?
答案 0 :(得分:1)
你有可能对可用的标签进行了一些打击。但这应该会让你知道如何做到这一点。 KeyDown
事件发生在TextChanged事件之前。所以我会拦截击键,检查输入键,如果行数是2或更大,我会处理它。像这样的C#winforms例子:
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter && richTextBox1.Lines.Length >= 2)
e.Handled = true;
}
在Handled
财产上回答您的问题。
来自链接:
处理由Windows窗体中的不同控件实现。对于TextBox这样的控件,它是本机Win32控件的子类,它被解释为意味着不应将关键消息传递给底层本机控件。如果在TextBox上将Handled设置为true,则该控件不会将按键事件传递给基础Win32文本框控件,但它仍会显示用户键入的字符。
答案 1 :(得分:0)
试试这个
String[] myLines = RichTextBox.Text.Split("\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
这将使用换行符拆分文本并删除所有空格。请注意,它不仅会删除最后一个空白行,还会删除其间的任何空行
或者您可以使用此方法
int lCount = RichTextBox.Lines.Count();
if(String.IsNullOrEmpty(RichTextBox.Lines[lCount-1]))
lCount--;
if lCount > 2
{
//Message Box to display the user that you are typing more than 2 lines
}