这么一段程序,想实现的功能是依次读取名为temp的txt文档每一行的内容,但是运行后什么都没有显示,不知道我的程序错在哪里, 我是菜鸟,刚接触,所以很多不懂,麻烦改一下。谢谢
int j = 1;
        private void timer1_Tick(object sender, EventArgs e)
        {
            using (StreamReader sr = new StreamReader("C:\\temp.txt", System.Text.Encoding.Default))
            switch(this.j)
            {
                case 1:
            {
                string TextStr;
                TextStr = sr.ReadLine();
                int i = 1;
                while (TextStr != null)
                {
                    TextStr = sr.ReadLine();
                    i++;
                    if (i == 1)
                        break;
                }
                sr.Close();
                this.textBox1.Text = TextStr; 
             }
                break;
            case 2:
                {
                    string TextStr;
                    TextStr = sr.ReadLine();
                    int i = 1;
                    while (TextStr != null)
                    {
                        TextStr = sr.ReadLine();
                        i++;
                        if (i == 2)
                            break;
                    }
                    sr.Close();
                    this.textBox1.Text = TextStr; 
                }
                break;
            case 3:
                {
                    string TextStr;
                    TextStr = sr.ReadLine();
                    int i = 1;
                    while (TextStr != null)
                    {
                        TextStr = sr.ReadLine();
                        i++;
                        if (i == 3) 
                            break;
                    }
                    sr.Close();
                    this.textBox1.Text = TextStr; 
                }
                break;        }
        }

解决方案 »

  1.   

    你的意思是想输入第几行就读第几行吧? 怎么要用到timer
      

  2.   

            private int j;
            private void button1_Click(object sender, EventArgs e)
            {
                timer1.Interval = 1000;
                timer1.Start();
            }
                private void timer1_Tick(object sender, EventArgs e) 
            {
                j = j + 1;
               StreamReader sr = new StreamReader("C:\\temp.txt", System.Text.Encoding.Default);
               string TextStr;
               int i = 1; 
               while ((TextStr = sr.ReadLine())!= null)
               {
                   if (TextStr!="")  i++; 
                   if (i==j) break ;           }
               sr.Close();
               this.textBox1.Text +=  TextStr+"\r\n";
               if (i < j)
               {
                   timer1.Stop();
                   MessageBox.Show ("完了");
               }        } 
    其实这个思路有点不正常。。
      

  3.   


    其实我最后想做的是当出现第二行时弹出panel,此时timer停止,当点击button2时关闭panel,timer继续运行,您给的程序非常好,但是这样的话好像很难实现我的最后的功能,
    非常感谢~~
      

  4.   

     if (i  < j) 
               { 
                   timer1.Stop(); 
                   MessageBox.Show ("完了"); 
               } 
    这里处理就可以了。