这么一段程序,想实现的功能是依次读取名为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; }
}
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; }
}
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 ("完了");
} }
其实这个思路有点不正常。。
其实我最后想做的是当出现第二行时弹出panel,此时timer停止,当点击button2时关闭panel,timer继续运行,您给的程序非常好,但是这样的话好像很难实现我的最后的功能,
非常感谢~~
{
timer1.Stop();
MessageBox.Show ("完了");
}
这里处理就可以了。