我有一个富文本框,里面有一些文字。目前,“橙色”位于第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();
}
答案 0 :(得分: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)
的特殊情况。
答案 1 :(得分: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();
}
答案 2 :(得分: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();
}
}
希望有所帮助