在.Net中的文本框的特定行中插入文本

时间:2010-06-08 18:01:48

标签: c# .net textbox

我想在特定行中插入文本,并替换同一行中的文本。

例如

This is line 1
This is line 2
This is line 3

现在我想将第2行中的文本替换为     这是新的第2行

这可能吗?

2 个答案:

答案 0 :(得分:3)

一种选择是在换行符上拆分文本,更改结果数组的第二个元素,然后重新加入一个字符串并设置Text属性。像

这样的东西
string[] array = textBox.Text.Split('\n');
array[position] = newText;
textBox.Text = string.Join('\n', array);

答案 1 :(得分:0)

您可以使用RegEx对象拆分文本。

像这样调用ReplaceLine()方法:

    private void btnReplaceLine_Click(object sender, RoutedEventArgs e)
    {
        string allLines = "This is line 1" + Environment.NewLine + "This is line 2" + Environment.NewLine + "This is line 3";
        string newLines = ReplaceLine(allLines, 2, "This is new line 2");
    }

ReplaceLine()方法实现:

        private string ReplaceLine(string allLines, int lineNumber, string newLine)
    {
        System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(Environment.NewLine);

        string newLines = "";

        string[] lines = reg.Split(allLines);

        int lineCnt = 0;
        foreach (string oldLine in lines)
        {
            lineCnt++;

            if (lineCnt == lineNumber)
            {
                newLines += newLine;
            }
            else
            {
                newLines += oldLine;
            }

            newLines += lineCnt == lines.Count() ? "" : Environment.NewLine;
        }

        return newLines;
    }