C# 如何在richTextBox中获取特定文本的行?

C# 如何在richTextBox中获取特定文本的行?,c#,winforms,C#,Winforms,我有一个richTextbox,里面有一些文本。目前,“橙色”位于第3行……那么我如何获得“橙色”行呢。我的代码不起作用=( 我的C#代码: 怎么样 private void button1_Click(object sender, EventArgs e) { string orange = "orange"; textBox1.Text = richTextBox1.GetLineFromCharIndex( richTextBox1.Find(orange)

我有一个richTextbox,里面有一些文本。目前,“橙色”位于第3行……那么我如何获得“橙色”行呢。我的代码不起作用=(

我的C#代码:

怎么样

private void button1_Click(object sender, EventArgs e)
{
    string orange = "orange";

    textBox1.Text = richTextBox1.GetLineFromCharIndex(
      richTextBox1.Find(orange)
    );
}
请参阅和的文档

基本上,
Find(string)
返回文本中字符串开头的索引(或
-1
如果找不到字符串),此索引将传递给
GetLineFromCharIndex(int)
,后者反过来检索指定索引的行号。
您可能需要处理一种特殊情况,即找不到字符串,并且从
Find(string)
返回了
-1
,如何

private void button1_Click(object sender, EventArgs e)
{
    string orange = "orange";

    textBox1.Text = richTextBox1.GetLineFromCharIndex(
      richTextBox1.Find(orange)
    );
}
请参阅和的文档

基本上,
Find(string)
返回文本中字符串开头的索引(或
-1
如果找不到字符串),此索引将传递给
GetLineFromCharIndex(int)
,后者反过来检索指定索引的行号。

您可能需要处理一种特殊情况,即未找到字符串,并且从
Find(string)
返回了
-1
,您可能需要做一些事情来处理具有给定文本的多行,但它应该可以工作

private void button1_Click(object sender, EventArgs e)
{
    string orange = "orange";

    foreach (string line in richTexBox1.Lines)
        if (line.Contains(orange))
            textBox1.Text = line.ToString();
}

您可能需要做一些事情来处理给定文本的多行,但它应该可以工作

private void button1_Click(object sender, EventArgs e)
{
    string orange = "orange";

    foreach (string line in richTexBox1.Lines)
        if (line.Contains(orange))
            textBox1.Text = line.ToString();
}
希望有帮助


希望对您有所帮助

您不需要拆分富文本框,因为富文本框具有返回所有行的Lines属性。您不需要拆分富文本框,因为富文本框具有返回所有行的Lines属性。+1.当
GetLineFromCharIndex
存在时,为什么要滚动您自己的函数?:)+1。当
GetLineFromCharIndex
存在时,为什么要滚动自己的函数?:)