2

私はWinFormsアプリケーションを持っており、ある時点で、数秒かかる計算を実行します。この間、コントロールを無効にします。さらに、アプリケーションをより視覚的に「ブロック」するようなポップアップを表示したいと思います。

フォームの上にパネルを配置しようとしましたが、どういうわけかテキストを追加できません。つまり、私がそこに置いたラベルとイメージボックスは、どういうわけか表示されていないか、パネルの後ろにあります。

迅速かつ簡単な方法でこれを達成する方法について何か提案はありますか?..つまり、フォーム全体を再設計する必要はありません。

4

3 に答える 3

4

追加のパネルに表示されないものに関する問題は、すべてが同じスレッドで発生しているが、スレッドを占有しているため、計算によってすべてが表示されないことです。WinFormsのツールの1つであるbackgroundWorkerの使用を検討する必要があります。計算を実行する関数呼び出しをbackgroundWorkerのDoWorkメソッドにスローする必要があります。そうすれば、フォーム自体が計算中に機能し続けることができます。

例については、 http://msdn.microsoft.com/en-us/library/cc221403%28v=vs.95%29.aspxを参照してください。

于 2011-08-09T14:59:40.600 に答える
1

処理中にポップアップするダイアログボックス(Windowsフォーム)を作成し、処理が完了したらダイアログボックスを閉じることができます。

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

于 2011-08-09T14:40:24.477 に答える
1

LabelとImageBoxだけで、おそらく値のパブリックセッターを使用して、単純なUserControlを作成できます。Visibleプロパティをfalseに設定して、フォームに追加できます。次に、計算中にそれを表示し、最後に非表示に戻すことができます。

于 2011-08-09T14:59:00.537 に答える