0

我有一个richTextbox,里面有一些文本。目前,“橙色”位于第 3 行......所以我怎样才能得到“橙色”行。我的代码不起作用=(

在此处输入图像描述

我的 C# 代码:

private void button1_Click(object sender, EventArgs e)
    {
        string orange = "orange";
        int a = richTextBox1.Text.IndexOf(orange);
        var b = richTextBox1.Lines.ElementAt(a);

        textBox1.Text = b.ToString();

    }
4

3 回答 3

5

怎么样

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

    textBox1.Text = richTextBox1.GetLineFromCharIndex(
      richTextBox1.Find(orange)
    );
}

参考RichTextBox.GetLineFromCharIndex(int)RichTextBox.Find(string)的文档

基本上Find(string)返回文本中字符串开头的索引(或者-1如果没有找到字符串),这个索引被传递给GetLineFromCharIndex(int)它反过来检索指定索引的行号。
您可能必须处理未找到您的字符串并-1Find(string).

于 2012-11-23T10:31:47.003 回答
0

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

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();
}
于 2012-11-23T10:32:18.157 回答
0
private void button1_Click(object sender, EventArgs e)
{
    string orange = "orange";
    stringp[] lines = richTextBox1.Lines;
    foreach(string line in lines)
    {
    int a = line.IndexOf(orange);
    if(a >0)
    {
      var b = line.ElementAt(a);

      textBox1.Text = b.ToString();
    }

}

希望有帮助

于 2012-11-23T10:33:07.730 回答