我有2个表单的应用程序,
从.csv文件读取1个表单以插入SQL Server,
发生故障时将显示1个表单(无法读取.csv文件或读取错误)我的代码如下:
tick()
它只有一次展示Form2。
但是在用户单击Form2上的按钮以进行comback Form1之后。但Form1与计时器无法正常工作。
请帮我解决这个问题。
谢谢!
答案 0 :(得分:0)
将表单显示为对话框,然后在完成后重新启动计时器:
timer1.Stop();
fr.ShowDialog(); // User need to click OK button to hide Form2 and come back Form1
timer1.Start();
答案 1 :(得分:0)
您可以使用消息框而不是使用form2并显示错误消息。请参阅下面的类似和示例代码。
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
PushData();
}
public void PushData()
{
Form2 fr = new Form2();
// function to reading .csv file
if (checkBox1.Checked==true)
{
progressBar1.Value += 1;
//update data to SQL Server
}
else
{
timer1.Stop();
MessageBox.Show("Error message");
timer1.Start();
}
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
}
答案 2 :(得分:0)
尝试以下代码,让我知道它是否有效
public void Timer_tick ( object sender eventargs e)
{
PushData(); // with time interval =100
}
public void PushData()
{
Form2 fr = new Form2();
frm.Closed += fr_Closed;
// function to reading .csv file
if ( checkData(name) == "OK")
{
//update data to SQL Server
}
else
{
timer1.Stop();
fr.Show(); // User need to click OK button to hide Form2 and come back Form1
this.Refresh();
}
}
void fr_Closed(object sender, EventArgs e)
{
timer1.Start();
}