Как обновить форму с помощью таймера? - PullRequest
0 голосов
/ 13 февраля 2019

Я использую этот код, чтобы освежить свою работу в течение одного раза, после этого таймер остановился у меня

private void Button1_Click(object sender, EventArgs e)
    {
        System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();
        timer1.Interval = 900000;//5 minutes
        timer1.Tick += new System.EventHandler(Timer1_Tick);
        timer1.Start();
    }
    private void Timer1_Tick(object sender, EventArgs e)
    {
        //do whatever you want 
        RefreshMyForm();
    }
    private void RefreshMyForm()
    {
        this.Hide();
        Graph1 graph = new Graph1();
        graph.Show();

    }

я не знаю, что мне не хватает в этом коде, он скрывает от и нене открывать снова
начать обновлять то, что я ищу форму

1 Ответ

0 голосов
/ 13 февраля 2019

Вам нужно убрать замедление таймера из нажатия кнопки и сделать его «глобальным» для класса.Кроме того, установите его в Form_Load (убедитесь, что вы подключили метод Form_Load к своему событию Form_Load.

Кроме того, ваша логика скрытия немного ошибочна. Вы скрываете форму, затем создаете график (но нене прикрепляйте его к форме), затем покажите его. Добавлены некоторые комментарии ниже, чтобы помочь вам разобраться в этих проблемах.

private System.Windows.Forms.Timer timer1;

private void Form_Load(object sender, EventArgs e)
{         
     timer1 = new System.Windows.Forms.Timer();
     timer1.Interval = 900000;//5 minutes
     timer1.Tick += new System.EventHandler(Timer1_Tick);
}

private void Button1_Click(object sender, EventArgs e)
{         
    if (!timer1.Enabled)
        timer1.Start();
}

private void Timer1_Tick(object sender, EventArgs e)
{
    //do whatever you want 
     RefreshMyForm();
}


private void RefreshMyForm()
{    
    // Do your data update logic here   
    this.Refresh();       
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...