替换richtextbox vb.net中的一行

替换richtextbox vb.net中的一行,vb.net,replace,line,Vb.net,Replace,Line,我有这个代码,但它有错误,我应该怎么做 Dim lines As New List(Of String) lines = RichTextBox1.Lines.ToList 'Dim FilterText = "@" For i As Integer = lines.Count - 1 To 0 Step -1 'If (lines(i).Contains(FilterText)) Then RichTextBox1.L

我有这个代码,但它有错误,我应该怎么做

         Dim lines As New List(Of String)
    lines = RichTextBox1.Lines.ToList
    'Dim FilterText = "@"

    For i As Integer = lines.Count - 1 To 0 Step -1
        'If (lines(i).Contains(FilterText)) Then
        RichTextBox1.Lines(i) = RichTextBox1.Lines(i).Replace("@", "@sometext")
        'End If
    Next

    RichTextBox1.Lines = lines.ToArray

更新:虽然以下“有效”,但它只修改从
-属性返回的数组。如果更改该数组,则不会更改文本框的文本。因此,如果要更改文本(如下所示),则需要将整个数组重新分配给
line
-属性。所以我保留我答案的第一部分只是因为它修正了语法,而不是真正的问题


不是

RichTextBox1.Lines(i).Replace = "@sometext"
但是

您可以向前循环
,此处不需要反向循环


也许您想用
“@sometext”
替换所有
“@”

RichTextBox1.Lines(i) = RichTextBox1.Lines(i).Replace("@","@sometext")
因此,这里需要完整的代码(因为它似乎仍然是一个问题):

但也许你甚至可以使用:

RichTextBox1.Text = RichTextBox1.Text.Replace("@","@sometext")`

因为如果我们有@xiao这个代码,就把它改成@sometextxiao!我 需要一个代码将例如第1行完全替换为@sometext吗

下次请首先提供所有相关信息:

Dim newLines As New List(Of String)
For Each line As String In RichTextBox1.Lines
    Dim newLine = If(line.Contains("@"), "@sometext", line)
    newLines.Add(newLine)
Next
RichTextBox1.Lines = newLines.ToArray()

更新:虽然以下“有效”,但它只修改从
-属性返回的数组。如果更改该数组,则不会更改文本框的文本。因此,如果要更改文本(如下所示),则需要将整个数组重新分配给
line
-属性。所以我保留我答案的第一部分只是因为它修正了语法,而不是真正的问题


不是

RichTextBox1.Lines(i).Replace = "@sometext"
但是

您可以向前循环
,此处不需要反向循环


也许您想用
“@sometext”
替换所有
“@”

RichTextBox1.Lines(i) = RichTextBox1.Lines(i).Replace("@","@sometext")
因此,这里需要完整的代码(因为它似乎仍然是一个问题):

但也许你甚至可以使用:

RichTextBox1.Text = RichTextBox1.Text.Replace("@","@sometext")`

因为如果我们有@xiao这个代码,就把它改成@sometextxiao!我 需要一个代码将例如第1行完全替换为@sometext吗

下次请首先提供所有相关信息:

Dim newLines As New List(Of String)
For Each line As String In RichTextBox1.Lines
    Dim newLine = If(line.Contains("@"), "@sometext", line)
    newLines.Add(newLine)
Next
RichTextBox1.Lines = newLines.ToArray()

显示错误和您试图实现的内容???RichTextBox1.Lines(i).Replace=“@sometext”显示错误和您试图实现的内容???RichTextBox1.Lines(i).Replace=“@sometext”i尝试替换一行:如果行(x)包含=@替换为@sometext:(对于RichTextBox1.Lines中的每个i,RichTextBox1.Lines(i)=RichTextBox1.Lines(i)。接下来替换(“@”,“sometext”)有什么问题?!@MrArman:为什么现在使用不同的代码?这是错误的,因为这样你就不循环整数,而是循环字符串(每行)。因此
i
是行而不是数字,所以你不能在
RichTextBox1.Lines(i)中使用它
。您已经有了行。但是这不起作用。当您对每个使用
时,您不能替换行。您的第一个回答是正确的,但您可以向前循环:
对于i As Integer=O到行1。计数-1…
蒂姆,我正在使用您的完整代码,但它不能替换任何东西!我不知道为什么!!@MrArman:代码中有什么文本textbox和您想用什么替换什么?我试图替换一行:如果行(x)包含@替换为@SomeText:(对于RichTextBox1.Lines RichTextBox1.Lines(I)=RichTextBox1.Lines(I).替换(“@”,“@SomeText”)接下来是什么问题?!@MrArman:为什么现在要使用不同的代码?这是错误的,因为这样你就不会循环整数,而是循环字符串(每行)。因此
i
是行而不是数字,所以你不能在
RichTextBox1.Lines(i)中使用它
。您已经有了行。但是这不起作用。当您对每个
使用
时,您不能替换行。您的第一个回答是正确的,但您可以向前循环:
对于i As Integer=O到行1。计数-1…
蒂姆,我正在使用您的完整代码,但它不能替换任何东西!我不知道为什么!!@MrArman:代码中有什么文本文本框,您想用什么替换什么?