读取已经可以,并且用message可以,但是textBox上为什么就显示不出来呢?            int num0;
            string sc = null;
            string[] wc = new string[1000];
            string filePath = Application.StartupPath + @"\word.txt";
             using (StreamReader sr = new StreamReader(filePath, System.Text.Encoding.GetEncoding("gb2312")))
                {
                        while ((sc = sr.ReadLine()) != null)
                        {
                            wc[num] = sc;
                            textBox.Text = wc[num];
                            
                            //MessageBox.Show(sr.ReadLine().ToString());
                            num++;
                            if (num > 300)
                            {sr.Close(); }
                        }
                }
txt里是汉字,300行~~

解决方案 »

  1.   

    Text类型时String
    用StringBuilder拼接字符串
    \r\n换行
      

  2.   

    不太明白啊,我的txt里,每行只有几个汉字,不是要拼接哦,我要分页显示,但是第一页就不显示呢,怎么回事呢?
      

  3.   


    你好,readtoend 我用了,但是读出来的都是拼接好多字的,btw,我读文件是没有问题的,问题出现在textbox不显示上~~
      

  4.   

    int num0;
      string sc = null;
      string filePath = Application.StartupPath + @"\word.txt";
      StringBuilder sb = new StringBuilder();
      using (StreamReader sr = new StreamReader(filePath,       System.Text.Encoding.GetEncoding("gb2312")))
      {
       while ((sc = sr.ReadLine()) != null)
       {
         sb.Append(sc);    
         num++;
         if (num > 300)
         {sr.Close(); }
       }
       textBox.Text = sb.ToString();
      }其实这样更简单
    string str = File.ReadAllText(Application.StartupPath + @"\word.txt");
    textBox.Text = str;
      

  5.   

     大哥,你的代码我试过了,可以调通,但是为什么把我每行的汉字都拼接起来了?而且textbox上依然没有显示哦~~
      

  6.   

    不是那个问题哦,我要的是每点下一步只显示一行内容,内容要把txt里的一行一行显示出来哦~~
    再说Multiline我已经设成true了
      

  7.   

    没有啊,我调试了,读的值赋予textBox.Text的是一行的,你说的是二楼的代码~~嘿嘿,有何高见啊?
      

  8.   

    可以用File.ReadAllText() 一次性返回
      

  9.   

    可能是textBox控件的BackColor 和ForeColor的颜色设置成一种颜色了。其实是已经有值,但是两种颜色一样,所以显示你也看不见。我感觉应该是这样。
      

  10.   

    textBox.Text += wc[num];
    F11 单步查看值
    string str=File.ReadAllText(Application.StartupPath + @"\word.txt")
      

  11.   

    我觉得是因为你用了while循环 而这个循环是在主线程中执行的 所以你要循环执行完了才会显示数据你把你这个代码放到一个新的线程中执行应该就没问题了你试试吧 我不知道对不对!?
      

  12.   


    int num0;
    string sc = null;
    string[] wc = new string[1000];
    string filePath = Application.StartupPath + @"\word.txt";
    using (StreamReader sr = new StreamReader(filePath, System.Text.Encoding.GetEncoding("gb2312")))
      {
          while ((sc = sr.ReadLine()) != null)
          {
              wc[num] = sc;    
              num++;
              if (num > 300) {sr.Close(); }
          }
      }int index = 0;
    textBox.Text = wc[index];...// 在显示下一条按钮的Click事件中
    index++;
    textBox.Text = wc[index];
    if(index > 300) return;// 读取的时候只要300条,这边可以按需要处理//index和wc提到外部就可以了
      

  13.   

    你的index在外面提醒了我,其实你的还是不显示,问题出现在静态变量上~~不过,谢谢你哈~~