richtextbox问题
假如现在richtextbox有如下内容:
aaaaaaa
bbbbbb"bds"fsdf
ccccccc
ddddddddd
如何知道"bds"在richtextbox哪一行?
知道在哪一行后如后定位到这行,就是滚动滚动条到行号所在位置
[解决办法]
你把RichTextBox的Text读出来,放到一个string变量a里去
再调用split方法,把换行符传进去,返回一个string数组b(每行放到数组的一个元素中),这样这个Text就被切成一行一行的。
然后你用一个foreach迭代这个数组,或者用for(int i=0;i<b.Length,i++),然后通过b[i].indexof("bds"),查找是否存在这个字符,如果存在那么i+1就是你的行位置。
不知道楼主听明白了么……
[解决办法]
for(int i=0;i<richTextBox1.Lines.Length;i++)
{
if (richTextBox1.Lines[i].ToString().IndexOf("bds") >= 0)
{
MessageBox.Show(i.ToString());
return;
}
}
[解决办法]
1.选中整行。
2.用RichTextBox.SelectionBackColor, RichTextBox.SelectionColor等属性来获取和修改选中文本的属性。
如下,结合前面的代码:
private void button1_Click(object sender, EventArgs e) { //找到指定的字符串,其实位置 int index = this.richTextBox1.Find("cfg"); if (index != -1) { //找到,则通过Select函数将当前光标调整到该位置 this.richTextBox1.Select(index, 3); //滚动到当前光标 this.richTextBox1.ScrollToCaret(); //获取行号 int line = this.richTextBox1.GetLineFromCharIndex(index); //选中指定行 this.richTextBox1.Select(this.richTextBox1.GetFirstCharIndexFromLine(line), this.richTextBox1.Lines[line].Length); //设置背景颜色,前景色等 this.richTextBox1.SelectionBackColor = Color.Red; this.richTextBox1.SelectionColor = Color.White; } }
[解决办法]
要取得行号:
int line = this.richTextBox1.GetLineFromCharIndex(charindex);
滚到当前光标的位置
richTextBox1.ScrollToCaret();
设置选中内容的背景色
this.richTextBox1.Select.this.richTextBox1.GetFirstCharIndexFromLineline),this.richTextBox1.Lines[line].Length);//选中区域
this.richTextBox1.SelectionBackColor = Color.Red;//设置颜色