如何在WPF多行文本框中修改指定行的文本内容?
在WPF多行TextBox中修改指定行文本的方法
WPF的TextBox确实没有WinForm里的Lines属性,但可以通过拆分和拼接文本的方式实现修改指定行的需求,以下是具体实现方案:
核心思路
- 将TextBox的文本按系统换行符拆分为字符串数组,模拟WinForm的
Lines数组 - 校验目标行号的合法性(避免索引越界)
- 修改指定索引的行内容后,重新拼接成带换行符的文本并赋值回TextBox
VB.NET代码示例
' 假设你的WPF TextBox控件名为MyTextBox,且已设置AcceptsReturn="True" Dim targetLineIndex As Integer = 1 ' 要修改的行索引(从0开始,对应第2行) Dim lines As String() = MyTextBox.Text.Split({Environment.NewLine}, StringSplitOptions.None) ' 检查行号是否在有效范围内 If targetLineIndex >= 0 AndAlso targetLineIndex < lines.Length Then ' 修改目标行的内容 lines(targetLineIndex) = "This is a test." ' 将修改后的行重新拼接并赋值回TextBox MyTextBox.Text = String.Join(Environment.NewLine, lines) End If
补充说明
- 若需要忽略空行,可以将
StringSplitOptions.None替换为StringSplitOptions.RemoveEmptyEntries,但会丢失原文本中的空白行信息 - 可以通过
MyTextBox.LineCount获取当前TextBox的总行数,用于更精准的合法性校验 - 确保你的TextBox已经设置
AcceptsReturn="True",否则无法支持多行输入和换行显示
内容的提问来源于stack exchange,提问作者vahid Araghi
相关产品推荐
相关产品推荐

