我想读取单行并将其放入文本框中,每1秒。我管理此代码:定时器和while循环
private void button1_Click(object sender, EventArgs e)
{
while ((line = file.ReadLine()) != null)
{
timer.Start();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
textBox1.text += line + "\r\n";
}
但是line
不可访问。我也试过这样的:
private void button1_Click(object sender, EventArgs e)
{
timer.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
while ((line = file.ReadLine()) != null)
{
textBox1.Text += line + "\r\n";
}
}
但它忽略了定时器间隔。更重要的是,我不知道如何在两个示例中停止计时器。你能给我一个提示,我可以用这个做什么?
编辑
任何想法,为什么这个代码工作好与if
但与while
?
private void timer1_Tick(object sender, EventArgs e)
{
while ((line1 = file1.ReadLine()) != null)
{
while ((line2 = file2.ReadLine()) != null)
{
try
{
//some code
}
catch
{
//some code
}
finally
{
//some code
}
}
}
timer1.Stop();
}
我想每一行从file2
与每一行从file1
结合起来。
第一个例子会做奇怪的事情,第二个例子是非常不清楚,因为我们不知道,你的计时器是如何初始化 – lokusking
提示:使它成为全局的,并在timer1_Tick()中,读取下一行,显示它并重新启动计时器。 –
第一块代码表示“对于文件中的每一行,启动计时器”。我认为这可能是你的问题的一部分。如果你在while块后加上'timer.Start',那么你可能会进一步。我也不知道你的意思是“但是'行'不可访问”。你的意思是你没有看到文本框中的文字,但你期待?您也不会将任何这些行添加到该循环内的文本字段中,因此整个文件(除最后一行“空行”之外)将在发生任何事情之前被读取和丢弃。 –