2009-08-12 6 views
4

C#では、mainFormとform1という2つのフォームがあります。新しいフォームが作成されたら、プロセスまたはスレッドが手に入りますか?

class Form1; //... 
class mainForm { 
    //... 
    void f() { 
     Form1 form1 = new Form1(); 
     ... 
    } 
} 

私はform1が終了するのを待ってメインフォームで次の作業を続けます。しかし、私はform1がプロセスやスレッドとして実装され、そのIDを取得する方法を知らない。

ありがとうございました。

答えて

10

どちらもありません。それはあなたが他のフォームと同じUIスレッドで実行されますが、メッセージポンプがメッセージをすべて処理するという方法で賢明なやり方をとらない限り、それは他のフォームと同じです。

あなたは何をしたいですか?通常、終了する二番目の形式を待つShowDialog()を使用するか、またはフォームである場合、ShowDialog(this)するためになど、2番目のフォームのインスタンスへ参照がメッセージを送信するために十分である

を維持します。

+0

などのモーダルダイアログとして、Form1を実行することができる非常に多くのあなたにGravellとサイードありがとうございます。わかった。 –

+0

そして別の質問があります。私はPeekMessageを使ってやることができると思う。しかし、私はそれを行う方法がわかりません.Net。私は.NETでWin32 APIをラップする方法を知っていますが、それは醜いと思います。 –

1

Form1が同じメインスレッド上で動作し、あなたは単に

Form1 form1 = new Form1(); 
form1.ShowDialog(this); //mainForm waits till form1 finishs its work 
//extra work in mainForm 
関連する問題