Показать окно в другом потоке

stenf
Дата: 09.05.2006 10:43:52
Почему приведенный код не работает ? Form15 показывается на долю секунды и изчезает.
private void button1_Click(object sender, System.EventArgs e)
  {                  
     Thread thr = new Thread(new ThreadStart(this.ShowProgressWindow));
     thr.Start();
  }

private void ShowProgressWindow()
  {
      Form15 frm15 = new Form15();
      frm15.Show();
  }
saint
Дата: 09.05.2006 10:49:59
Потаму чта поток завершается.
stenf
Дата: 09.05.2006 10:51:18
и что-же теперь сделать ? Нужно окно в другом потоке по шелчку на кнопке
stenf
Дата: 09.05.2006 10:59:36
а кстати поток почему-то не работает. Окно Form15 появляется, но в замороженном виде, управлять им нельзя. Как-же так ?
private void button1_Click(object sender, System.EventArgs e)
 {                       

    Thread thr = new Thread(new ThreadStart(this.ShowProgressWindow));
    thr.Start();

    for (int i = 0; i <= 50000; i++)
      {
          this.Text = i.ToString();
      }
 this.Close();			                        
  }

private void ShowProgressWindow()
  {
      Form15 frm15 = new Form15();
      frm15.Show();
  }
Лиман Артём
Дата: 09.05.2006 11:30:48
может ерунду скажу, но возможно в потоке надо форму открывать через Application.Run(...)
_______________________________________________________
Never ask users what they want, or they'll tell you.
Картинка с другого сайта.
stenf
Дата: 09.05.2006 12:55:56
ура сработало. Видите, вовсе и не ерунду сказали :)
izoldov-roskini
Дата: 13.03.2008 11:49:35
а вот теперь как его закрыть, окно которое висит?
SerP1983
Дата: 13.03.2008 11:53:06
А если так

private void button1_Click(object sender, System.EventArgs e)
  {                  
     Thread thr = new Thread(new ThreadStart(this.ShowProgressWindow));
     thr.Start();
  }

private void ShowProgressWindow()
  {
      Form15 frm15 = new Form15();
      frm15.ShowDialog();
  }
izoldov-roskini
Дата: 13.03.2008 11:54:27
а закрыть где? автоматом, по завершении. можно конечно через переменную потока
thr.Abort();
SerP1983
Дата: 13.03.2008 11:57:56
Попробуйте открывать окно в текущем потоке, а действия с прогрессом делать в новом потоке.