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)、指定されたインデックスの行番号が取得されます。
文字列が見つからず、-1から返された特殊なケースを処理する必要がある場合がありますFind(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 に答える