1

私の Windows フォーム アプリケーションでは、1 つのフォームを閉じて、次のように別のフォームを開きます。

MyApp.MySecondForm frmInst = new MyApp.MySecondForm();
frmInst.Show();
this.Hide();

しかし、このように開く前に、最初のフォームにラベル テキストを設定します。これは、2 番目のフォームが読み込まれていることをユーザーに通知するためです。

2 番目のフォームの読み込みに 10 秒かかると想像してください。2 番目のボタンを開くためにボタンを押すと、2 番目のフォームが開くまでラベル テキストは変更されません。2 番目のフォームを閉じると、最初のフォームを思い出して、テキストが変更されていることがわかります。

ユーザーがボタンをクリックした直後にラベル テキストを設定するには、どの方法に従うべきですか?

前もって感謝します。

4

2 に答える 2

1

Refresh()の前にメソッドを呼び出す必要がありますfrmInst.Show()。手動で行わない限り、メソッドの実行が完了するまでグラフィックは更新されないためです。

于 2012-07-10T13:44:17.450 に答える
1

その 10 秒のプロセスを非同期で起動していますか?

そうでない場合、それが遅延の原因です。情報を取得し (10 秒)、GUI スレッドを更新します。

BackgroundWorker を使用してみてください: http://www.dotnetperls.com/backgroundworker

于 2012-07-10T13:35:09.423 に答える