el_tot93 Ответов: 1

Как обновить форму с помощью таймера?


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()
{
    
    this.close();

   
    Graph1 graph = new Graph1();
    graph.Show();

    

}


Что я уже пробовал:

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

private void RefreshMyForm()
        {
            this.Hide();
            var Graph1 = new Graph1();
            Graph1.Closed += (s, args) => this.Close();
            Graph1.Show();

        }


и

private void RefreshMyForm()
        {
            this.Hide();
            Graph1 sistema = new Graph1();
            sistema.ShowDialog();
            this.Close();

        }

1 Ответов

Рейтинг:
1

OriginalGriff

Проблема в том, что если это ваша основная форма, то ее закрытие положит конец вашей заявке. Что также закроет все дочерние формы.

Почему вы хотите закрыть формы, и какие из них?

Если это ваш график, чтобы хотеть "обновить", то ваш метод "закрыть и снова открыть" может работать:

private Graph myGraph = null;
private void RefreshMyForm()
{
    if (myGraph != null) 
    {
        myGraph.Close;
        myGraph = null;
    }
    myGraph = new Graph1();
    myGraph.FormClosing += new Graph_Closing;
    myGraph.Show();
}
private void Graph_Closing(object sender, EventArgs e)
{
    myGraph = null;
}
И просто график закроется и снова откроется.

Но лучший способ-добавить метод обновления в форму графика и вызвать его, чтобы он мог обновиться сам.


el_tot93

это не работает то есть много красной линии

OriginalGriff

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

Кстати: вы превращаетесь в настоящего вампира помощи: вы ничего не добьетесь в этом бизнесе, если не начнете смотреть на проблемы и пытаться продумать их для себя, а не просто пытаться заставить других исправить их для вас без каких-либо усилий.

TheRealSteveJudge

Это пустая трата времени..

OriginalGriff

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

TheRealSteveJudge

Именно так. Вот о чем я тоже думал вчера, когда пытался помочь.

el_tot93

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

OriginalGriff

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

Серьезно: вам нужно смотреть на то, что вы делаете, и учиться на своих ошибках, а не игнорировать их, хватать код наугад и пытаться заставить кого-то другого исправить его. Если вы не научитесь, вы никогда не сможете сделать это самостоятельно - и повторение одной и той же ошибки снова и снова является сильным показателем того, что вы даже не пытаетесь узнать, почему это ошибка!

el_tot93

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

OriginalGriff

И что из того, что я сказал выше, вы действительно слушали?
Ты опять это делаешь!