用计时器显示消息

时间:2017-03-15 03:11:20

标签: c#

我有2个表单的应用程序,

从.csv文件读取1个表单以插入SQL Server,

发生故障时将显示1个表单(无法读取.csv文件或读取错误)

我的代码如下:

tick()

它只有一次展示Form2。

但是在用户单击Form2上的按钮以进行comback Form1之后。但Form1与计时器无法正常工作。

请帮我解决这个问题。

谢谢!

3 个答案:

答案 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();
}