| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 789 人关注过本帖
标题:请教一个RichTextBox的显著问题
只看楼主 加入收藏
comeguojiaxi
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:73
注 册:2012-6-7
结帖率:50%
收藏
已结贴  问题点数:6 回复次数:9 
请教一个RichTextBox的显著问题
我有一个RichTextBox里面有多行的数据、现在我提供两个文本框、一个按钮。
在第一个文本框和第二个文本框中输入一个行号。当点击按钮时、将当前所输入的行以及此行的文本与另一行互换位置、并且高亮显示。
求解???
搜索更多相关主题的帖子: 数据 文本框 
2012-06-07 14:07
wumingchenxi
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:96
专家分:457
注 册:2012-6-6
收藏
得分:0 
//the first line no. is 0
int a = Convert.ToInt32(this.textBox1.Text);
int b = Convert.ToInt32(this.textBox2.Text);

string Txt = this.richTextBox1.Text;
string aTxt = Txt.Substring(this.richTextBox1.GetFirstCharIndexFromLine(a), this.richTextBox1.GetFirstCharIndexFromLine(a+1));
string bTxt = Txt.Substring(this.richTextBox1.GetFirstCharIndexFromLine(b), this.richTextBox1.GetFirstCharIndexFromLine(b + 1));

string Txta = Txt.Substring(0, this.richTextBox1.GetFirstCharIndexFromLine(a)); //开头到a
string Txtab = Txt.Substring(this.richTextBox1.GetFirstCharIndexFromLine(a+1),this.richTextBox1.GetFirstCharIndexFromLine(b)-this.richTextBox1.GetFirstCharIndexFromLine(a+1));  //ab之间文本
string Txtb = Txt.Substring( this.richTextBox1.GetFirstCharIndexFromLine(b+1)); //b+1 到结束

string Txtnew = Txta + bTxt + Txtab + aTxt + Txtb;
this.richTextBox1.Text=Txtnew;
2012-06-07 15:40
comeguojiaxi
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:73
注 册:2012-6-7
收藏
得分:0 
哥们我试一下好、我主要是在那个获取行之后我能拿到第一个字符,和我不知道怎样循环
我是这么做的:
int []line = new int[this.richtextBox.lines.length]
for(int counter=0;counter<line.length;counter++)
{
start = line[counter];
}
int First = this.richtextbox.getFirstCharIndexFromLine(start)

int Firsts = this.richtexbox.GetFirstCharIndexFromLine(start+1);
2012-06-08 12:11
comeguojiaxi
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:73
注 册:2012-6-7
收藏
得分:0 
那个First是textBox1行的第一个字符,Firsts是textBox1下一行的第一个字符。
我这种做法好像也没错substring(First,(Firsts-1)-Firsts)
但是不知道错在那,就是取不到
2012-06-08 12:14
comeguojiaxi
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:73
注 册:2012-6-7
收藏
得分:0 
我测试了一下、哥们不对啊!那两行文本没有互换啊!而且还多除了一些行数据
2012-06-08 13:33
wumingchenxi
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:96
专家分:457
注 册:2012-6-6
收藏
得分:6 
昨天的代码没有测试
//the first line no. is 0
            int a = Convert.ToInt32(this.textBox1.Text);
            int b = Convert.ToInt32(this.textBox2.Text);

            string Txt = this.richTextBox1.Text;
            int apos=this.richTextBox1.GetFirstCharIndexFromLine(a);
            int a1pos=this.richTextBox1.GetFirstCharIndexFromLine(a+1);
            string aTxt = Txt.Substring(apos, a1pos - apos);

            int bpos = this.richTextBox1.GetFirstCharIndexFromLine(b);
            int b1pos = this.richTextBox1.GetFirstCharIndexFromLine(b + 1);
            string bTxt = Txt.Substring(bpos, b1pos - bpos);
            

            string Txta = Txt.Substring(0, this.richTextBox1.GetFirstCharIndexFromLine(a)); //开头到a
            string Txtab = Txt.Substring(this.richTextBox1.GetFirstCharIndexFromLine(a + 1), this.richTextBox1.GetFirstCharIndexFromLine(b) - this.richTextBox1.GetFirstCharIndexFromLine(a + 1));  //ab之间文本
            string Txtb = Txt.Substring(this.richTextBox1.GetFirstCharIndexFromLine(b + 1)); //b+1 到结束

            string Txtnew = Txta + bTxt + Txtab + aTxt + Txtb;
            this.richTextBox1.Text = Txtnew;

Txt =123456789
12
34
56
78
9
this.textBox1.Text=1
this.textBox2.Text=2
就变成了
12
56
34
78
9
测试过了,
另外这里头没有进行错误控制,不要选择最后一行(行号:4)。
收到的鲜花
  • comeguojiaxi2012-06-08 15:47 送鲜花  3朵  
  • comeguojiaxi2012-06-08 16:43 送鲜花  3朵   附言:我很赞同
2012-06-08 14:01
wumingchenxi
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:96
专家分:457
注 册:2012-6-6
收藏
得分:0 
不好意思,昨天的代码
string aTxt = Txt.Substring(this.richTextBox1.GetFirstCharIndexFromLine(a), this.richTextBox1.GetFirstCharIndexFromLine(a+1));
后面的参数应该是length, 忘了减去前面的位置了。
string aTxt = Txt.Substring(apos, a1pos - apos);
 
2012-06-08 14:04
comeguojiaxi
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:73
注 册:2012-6-7
收藏
得分:0 
啊!就是我都搞晕了
2012-06-08 15:45
comeguojiaxi
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:73
注 册:2012-6-7
收藏
得分:0 
谢谢啊!
2012-06-08 15:46
comeguojiaxi
Rank: 2
等 级:论坛游民
威 望:3
帖 子:30
专家分:73
注 册:2012-6-7
收藏
得分:0 
弄出来了、那我的最后一行怎样错误控制啊!我要选取怎么处理呀!求解
2012-06-08 16:42
快速回复:请教一个RichTextBox的显著问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051269 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved