.NET TIPS Visual Basic 2005でスプラッシュ・スクリーンにメッセージを表示するには?[VS 2005のみ、VB]デジタルアドバンテージ 遠藤 孝信2007/08/30 |
|
|
「TIPS:Visual Basic 2005でスプラッシュ・スクリーンを表示するには?」では、Visual Basic 2005(Visual Basic 2005 Express EditionあるいはVisual Studio 2005のVisual Basic。以下、VB 2005)で簡単にスプラッシュ・スクリーンを表示する方法について解説している。
本稿では、メイン・フォームでの初期化処理の進行状況などを示すメッセージをスプラッシュ・スクリーンに表示する方法について解説する。VB 2005のスプラッシュ・スクリーンはメイン・フォームとは別のスレッドで実行されるため注意が必要だ。
スプラッシュ・スクリーンの修正
まず、スプラッシュ・スクリーンとなるフォームにメッセージを表示するためのラベルを追加する。ここではこれを以下の画面のように行っている。なお、スプラッシュ・スクリーン自体の追加と設定については前掲のTIPSを参照してほしい。
メッセージ表示のためのLabelコントロールを追加したスプラッシュ・スクリーン | |||
スプラッシュ・スクリーンのフォームの構成要素はTableLayoutPanelコントロール上に配置されているため、ここではTableLayoutPanelコントロールに行を追加し、そこにLabelコントロールを配置している。この画面ではフォームの構成が分かるように「ドキュメント・アウトライン」ウィンドウを表示している。これについては「TIPS:Visual Studio 2005でコントロールの選択/移動を簡単に行うには?」を参照。
|
メイン・フォーム(の初期化処理を行うLoadイベント・ハンドラ)からは、いま配置したLabelコントロールのTextプロパティに文字列を設定することによってメッセージを表示できるが、前述したようにスプラッシュ・スクリーンのフォームとメイン・フォームは別スレッドで実行されるため、Textプロパティを直接設定することはできない(.NET Framework 2.0以降ではこれを行うと実行時に例外が発生する)。
このため、ここでは「TIPS:Windowsフォームで別スレッドからコントロールを操作するには?」で解説している手法を用いて、スプラッシュ・スクリーンのフォームに次のようなSetInitMessageメソッドを追加する。
| |
スプラッシュ・スクリーン上のラベルにメッセージを表示するためのSetInitMessageDelegateメソッド | |
グレーの部分はVB 2005により自動作成されたコード。メソッドが別スレッドから呼び出された場合には、InvokeRequiredプロパティはTrueとなる。この場合にはInvokeメソッドにより、フォーム上のコントロールを操作するメソッドを実行すればよい。 |
このSetInitMessageメソッドでは、メソッドが別スレッドから呼び出された場合にフォームのInvokeメソッドを経由して再度SetInitMessageメソッドを実行するようにしている。
メイン・フォームからのメソッドの呼び出し
メイン・フォームからのSetInitMessageメソッドの呼び出しは、通常のメソッドと同じようにして行えばよい。例えば以下のようになる。
| |
メイン・フォームのLoadイベント・ハンドラの記述例 |
この場合には、表示されるスプラッシュ・スクリーンは次のようになる。
メッセージを表示しているスプラッシュ・スクリーン |
上記のコードでは時間稼ぎのためにSleepメソッドを呼び出しているが、もちろん実際にはその部分で初期化処理などを行うことになる。
利用可能バージョン:.NET Framework 2.0のみ カテゴリ:Visual Studio 2005 処理対象:プロジェクト カテゴリ:Visual Basic 2005 処理対象:アプリケーション・フレームワーク 関連TIPS:Visual Basic 2005でスプラッシュ・スクリーンを表示するには? 関連TIPS:Visual Studio 2005でコントロールの選択/移動を簡単に行うには? 関連TIPS:Windowsフォームで別スレッドからコントロールを操作するには? |
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|