2015-04-14 3 views
0

Проблема в том, что я использовал советы и рекомендации здесь, но, похоже, работает в цикле и не дает результатов.Я хочу запустить функцию, когда нажимается на панели задач на панели задач, и она открывается

В основном я запускаю BackgroundWorker, чтобы получить URL-адрес, получить результат и вставить результат в Labels.

Я использовал Form_Activated, но он просто продолжает работать в петле и не останавливается, когда-либо достигший BackgroundWorker завершенного события.

основной код БЛОКИ:

На Form_Load я запустить функцию и получить результаты и шоу:

private void Form1_Load(object sender, EventArgs e) 
    { 
     pictureBox1.Show(); 
     if (!backgroundWorker1.IsBusy) 
     { 
      backgroundWorker1.RunWorkerAsync(); 
     } 
     else 
     { 
      MessageBox.Show("Thread already running...."); 
     } 
    } 

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
    { 
     loadData(); // scrape a URL and paste info to Labels .... 
    } 

Это он, теперь пользователь минимизирует приложение, теперь каждый раз, когда он попадает значок панели задач форма должна повторяться так же, как в Form_Load. Надеюсь, что это имеет смысл, я смог сделать это с помощью Form_Activate, но он продолжается.

Любое предложение, как это сделать?

+0

Если вы хотите запустить код, когда форма открывается с панели задач, возможно, событие getfocus - это то, что вы могли бы использовать? – maam27

+0

@ maam27 не проверял, что один я дам ему попробовать любой пример кода или ссылку – confusedMind

+1

любого кода, пожалуйста? – VMAtm

ответ

2

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

private bool minimized = false; 

public void FormResized(object sender, EventArgs e) 
{ 
    if (this.WindowState == FormWindowState.Minimized) 
    { 
     minimized = true; 
    } 

    if (minimized && this.WindowState != FormWindowState.Minimized) 
    { 
     minimized = false; 
     MyMethod(); 
    } 
} 
+0

Спасибо, что работала отлично по мере необходимости. – confusedMind

Смежные вопросы