richTextBox1.Lines[0]这个方法我知道。。可是怎么在richtextbox已有的内容中选出,然后逐行换色而不是在原有的内容下面添加!本来是想把内容一个个读入数组中按字数换行,可是在richtextbox中自动拉伸时,一行内容会莫明奇妙的分成两行,当读的时候虽然是取字数,但是就不在一行了,所以有没有办法,希望各位高手帮忙,最好有代码,不要英文网站,因为我已经有了。

解决方案 »

  1.   

    我的按字取的代码!
       string str;char[] s; string line, lines; int i = 0, j = 1;      private void button1_Click(object sender, EventArgs e)
            {
                StringBuilder builder1 = new StringBuilder("");
                using (StreamReader sr = new StreamReader(@"E:\test1\test1\bin\Debug\test.txt", Encoding.GetEncoding("GB18030")))
                {
                    while ((line = sr.ReadLine()) != null)
                    {
                        builder1.Append(line + "\n");
                        str = builder1.ToString();
                    }
                    Regex r = new Regex("[^0-9.-]");
                    bool result = r.IsMatch(str);
                    if (result == true)
                    {
                        str = str.Replace("0", "0");
                        str = str.Replace("1", "1");
                        str = str.Replace("2", "2");
                        str = str.Replace("3", "3");
                        str = str.Replace("4", "4");
                        str = str.Replace("5", "5");
                        str = str.Replace("6", "6");
                        str = str.Replace("7", "7");
                        str = str.Replace("8", "8");
                        str = str.Replace("9", "9");
                        str = str.Replace("\"", "“");
                    }
                    string[] a1 = str.Split(new char[] { ' ', '\r', '\n' });
                    foreach (string aa in a1)
                    {
                        lines += aa;
                    }
                    s = lines.ToCharArray();
                    foreach (char a in s)
                    {
                        if (i != 33 * j)
                        {
                            richTextBox1.AppendText(a.ToString());
                            i++;
                        }
                        else
                        {
                            richTextBox1.AppendText("\n"+a.ToString());
                            i++;
                            j++;
                        }
                    }
                }
            }
      

  2.   

    to 一行内容会莫明奇妙的分成两行,当读的时候虽然是取字数,但是就不在一行了设置richtextbox的wordwrap属性为false即可。
      

  3.   

    这样你就可以按照richTextBox1.Lines这个方法进行操作。
      

  4.   

    不好意思,虽然wordwrap改成false,但是点button2拉伸richtextbox时,本来读入的换行的内容会自动变成一条,后面的内容因为richtextbox不换行就看不到了!请问Knight94(愚翁)是不是我的代码有问题?
      

  5.   

    而且奇怪的是因为我要的每行的字数不一样。。每点一次。。richtextbox里面的内容都不一样,有些会变成两段,有些一行会少一两个字!逐行读下去会变得不是行而是两个段!
      

  6.   

    你可以如下读取数据
    string strContent = sr.ReadToEnd();
    yourRichBox.Text = strContent;
      

  7.   

    不行啊,我现在是写了一个方法fileload()来读取文件内容在richtextbox里显示,在form_load中调用这个方法, 当我点击的时候还需要调用fileload(),所以点击后文字就不会出现在form_load中的那样一行十个那样,排版就渣掉,比如第一行六个,然后直接换行。后面的我就没看了!
      

  8.   

    感觉你的问题在于richtextbox的前期数据处理有问题,并不是后期显示的问题你最好在适当的位置加上“\r\n”来进行换行。