我想讀取單行並將其放入文本框中,每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',那麼你可能會進一步。我也不知道你的意思是「但是'行'不可訪問」。你的意思是你沒有看到文本框中的文字,但你期待?您也不會將任何這些行添加到該循環內的文本字段中,因此整個文件(除最後一行「空行」之外)將在發生任何事情之前被讀取和丟棄。 –