TextBox
我用这个链接创建多行它的工作更好但是如果我想设置TextBox
文本计数器
label1.Content = textBox1.Text.Length;
上面的行工作正常,但问题是当我在计数器中按 Enter 时,TextBox
它会在计数器中增加 2 个字符TextBox
。
我该如何完成这项任务,请帮助我。
任何帮助表示赞赏!
Andrey Gordeev 的回答是正确的(对他 +1),但没有为您的问题提供直接解决方案。如果您textBox1.Text
使用调试器检查字符串,您会看到引用的\r\n
字符。另一方面,如果您打算直接影响它们(.Replace
例如通过 ),您将一无所获。
因此,您的问题的实际答案是:依靠Environment.NewLine
. 示例代码:
label1.Content = textBox1.Text.Replace(Environment.NewLine, "").Length;
这是因为换行符由两个符号表示:\r
和\n
相关问题:\r 和 \n 有什么区别?
如果您在“Enter”上只需要一个字符,那么您可以在 TextBox 上处理 PreviewKeyDown 事件并粘贴以下处理程序:
private void Txt_OnPreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
var txtBox = e.Source as TextBox;
var selectionStart = txtBox.SelectionStart;
txtBox.Text = txtBox.Text.Insert(selectionStart, "\n");
txtBox.Select(selectionStart + 1, 0);
e.Handled = true;
}
}
使用下面的代码代替label1.Content = textBox1.Text.Length;
label1.Text = textBox1.Text.Replace(Environment.NewLine, "").Length.ToString();
请不要忘记添加using System.Text;