2011-07-26 4 views
-2

私のVS-2008 Windowsアプリケーションでは、プログレスバーを表示するポップアップフォームを表示したいと思います。バックグラウンドで実行されるクラスは、プログレスバー値を直接バックグラウンドで送信する必要があります。インスタンスを作成するのではなく、名前をタイプすることによってこのフォームに直接アクセスできるようにします。フォームをアプリケーションからグローバルにアクセスできるようにする

ダイアログに[アクセシブルロール]プロパティを設定すると、それが一番上に表示され、ユーザーの作業を妨害します。このフォームを画面のある隅で実行し、MDIフォームの子として表示する必要がありますが、直接アクセスできる必要があります。

+0

WinformsまたはWPF?何を試しましたか? –

+0

@Kyle "Form"という単語の使用は、WinFormsを示すようです。 –

+0

十分です。 :) –

答えて

2

http://en.wikipedia.org/wiki/Singleton_pattern

最も簡単な方法は、あなたの全クラスが静的行い、静的にすべてのインスタンス変数やメソッドを変更することです。次に、クラス名でメソッドを呼び出すことができます。MyFormClass.UpdateProgress(2);

このようにすると、クラスの1つの静的でないインスタンスをどこかに格納してそのアクセスを制御することを好む(私を含む)人には醜いですコントロールオブジェクト/メソッドを介してC#の実装 - 心配のないプログラミングの世界で、その意見のどれが合法であるかはわかりません。

また、バックグラウンドスレッドからプログレスバーを更新する場合は、winformsがスレッドセーフではないことに注意してください。

関連する問題