2011-08-09 4 views
2

私はWinFormsアプリケーションを持っており、ある時点で数秒かかる計算をしています。この間、私はコントロールを無効にします。さらに、アプリケーションをより目立つように「ブロックする」ポップアップを表示したい。WinForms: 'Processing ..'パネルをポップアップする簡単な方法を探しています

Formの上にPanelを配置しようとしましたが、そこに何らかのテキストを追加できませんでした。私。私がそこに置いたラベルとイメージボックスは何とか表示されず、パネルの後ろにも表示されません。

私はこれをどのように素早く簡単に達成することができますか?私は、Form全体を再設計することなく、意味します。

+1

MessageBox.Show(...) –

+0

しかし、彼は、ユーザーのクリックと彼calcultaionsを待っているプロセスをブロックするこの方法は実行されないでしょう... –

答えて

4

追加のパネルに表示されない問題は、同じスレッドですべてが起こっていることですが、計算によってスレッドがうまくいきませんからすべてが表示されなくなります。 WinFormsのツールの1つであるbackgroundWorkerの使い方を検討する必要があります。計算を実行する関数呼び出しをbackgroundWorkerのDoWorkメソッドにスローすると、計算中にフォーム自体が引き続き機能します。

は例のためhttp://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspx参照してください、私が試したし、正確に何

1

処理中にポップアップするダイアログボックス(ウィンドウ形式)を作成し、処理が完了したらダイアログボックスを閉じることができます。

メッセージボックスではなくダイアログボックスを使用することで、処理が完了してもウィンドウを閉じることができます。

1

LabelとImageBoxだけで簡単なUserControlを作成することができます。多分、値のパブリックセッターを使用することができます。 Visibleプロパティをfalseに設定してフォームに追加できます。その後、計算中にそれを見えるようにし、最後には目に見えないトップに戻ることができます。

+0

何がうまくいかなかった.. – Efrain

関連する問題