2009-05-20 18 views
2
Application.Run(form); 

実際に私はこのプロジェクトを私のプロジェクトから呼び出そうとしました。私はこの例外があります。どのようにそれを解決するには?私はすでに私のプロジェクトで別のApplication.Run(frmBind);を呼び出しました。この例外を処理する方法:無効な操作例外

単一スレッドで2番目のメッセージループを開始することは、有効な 操作ではありません。代わりにForm.ShowDialogを使用してください。

static void Main(string[] args) 
{ 
    frmBind = new frmMain(); 

    Application.Run(frmBind); 

    //args1 = string.Copy(args); 
} 

私が最初

でアプリケーションを呼び出す場所ですここでもう一度、ここでそれをやった:ここ

try 
{ 
    // Application.Run(form); 
    form.ShowDialog(); 
} 

例外がスローされます。

+1

コードサンプルを投稿できますか? – Galilyou

答えて

7

それを解決するためにどのように言っています:

form.Show(); 

または新しいフォームがモーダルになりたい場合:

form.ShowDialog(); 
+0

を実行しても例外が続きます – Arunachalam

+0

2番目のApplication.Runを*削除*して、代わりに使用する必要があります。 –

+0

は例外が続いた後でも同じことをしました。この質問を投稿しただけです – Arunachalam

4

をあなただけのスレッドで一度Application.Runを呼び出すことができます。 Application.Runは(とりわけ)スレッドのメインメッセージループを設定し、そのようなループは1つしかありません。これが例外を得る理由です。

単にフォームを表示する場合は、代わりにform.Show()またはform.ShowDialog()を使用してください。既に表示されているフォームに対してShowDialogを呼び出すと、InvalidOperationExceptionもスローされます(別のメッセージが表示されます)。

+0

それをした後でも例外は続ける – Arunachalam

+0

あなたはいくつかのコードを表示する必要があると私は思います。それ以外の場合は、本当に助けても大変です。 –

+0

ShowDialogを呼び出すとフォームが既に表示されている可能性がありますか? –