このコードがあるボタンをクリックすると、現在のフォームの上にダイアログが表示され、テキストが表示されます。1秒待ってから、テキストを変更して、最後に閉じます。
Form p = new Form();
p.ShowDialog();
p.Text = "Start.";
Thread.Sleep(1000);
p.Text = "Counting.";
Thread.Sleep(1000);
p.Text = "End.";
Thread.Sleep(1000);
p.Close();
ただし、実行するp.ShowDialog();
と、フォームpが閉じられるまでコードが停止し、意図したとおりに機能しなくなります。これについてのガイダンスを得ることができますか?必ずしも解決策ではありませんが、少なくとも私がグーグルで検索できるいくつかのキーワードはありますか?
更新:問題とは無関係なビジネスロジックにアクセスしようとして直面している問題のため、実際の例の提供を遅らせています。しばらくお待ちください:)
解決策:私がしたことは、実際にはShow()
の代わりに使用されShowDialog()
ます。ビジネスロジックからフォームにアクセスすることができなかったので、BackgroundWorkerが便利で、それらの間で使用されていました。コードやプロジェクト構造のレイアウトを共有することはできませんが、結論として、受け入れられた回答のメインステートメントが解決策の鍵でした:)