|
.NET TIPS
文字列入力用ダイアログ・ボックスを簡単に開くには?(VB.NET関数活用)
デジタルアドバンテージ 遠藤 孝信
2005/09/23 |
|
|
Windowsアプリケーションにおいて、メイン・ウィンドウ以外でユーザーからの文字列の入力が必要となった場合、通常はダイアログ・ボックスを表示するが、VB.NETのライブラリには次のようなダイアログ・ボックスを開くInputBox関数が用意されている。
|
VB.NETのInputBox関数によって開くダイアログ・ボックス |
画面にある「タイトルバー文字列」「質問内容」「デフォルトの答え」の文字列は関数のパラメータにより指定できる。 |
InputBox関数では、ダイアログ・ボックスとなるフォームを定義する必要もなく、入力された文字列を関数の戻り値として受け取ることができる。本稿では、このInputBox関数をVB.NETおよびC#から利用する手順について解説する。
VB.NETにおけるInputBox関数の呼び出し
VB.NETでのInputBox関数の呼び出し方法は、すべてのパラメータを指定する場合には次のようになる。
Dim inputText As String
inputText = InputBox("質問内容", "タイトルバー文字列", "デフォルトの答え", 200, 100)
|
|
nputBox関数の呼び出し例(VB.NET) |
この場合には、デスクトップ領域の(200, 100)の位置にダイアログ・ボックスが表示されることになる。上述したように、関数の戻り値は入力された文字列となるが、ダイアログ・ボックスが[キャンセル]ボタンにより閉じられた場合には、戻り値は空文字列となる。
VB.NETではメソッド呼び出しでパラメータを省略することができ、InputBox関数では第2パラメータ以降が省略できる。このため、次のようにしてもInputBox関数を呼び出すことができる。
Dim inputText As String
inputText = InputBox("質問内容")
|
|
パラメータを省略した場合のInputBox関数の呼び出し例(VB.NET) |
この場合には、次のようなダイアログ・ボックスが画面の中央に表示される。
|
第1パラメータのみを指定した場合のダイアログ・ボックス |
第2パラメータ以降を省略した場合、ダイアログ・ボックスは画面中央に表示され、タイトルバー文字列にはアプリケーション名が使用される。 |
第2パラメータで指定するタイトルバー文字列を省略した場合、アプリケーション名(正確にはアセンブリ名。Visual Studio .NETではプロジェクトのプロパティから変更可能)がダイアログ・ボックスのタイトルバー文字列となる。
C#におけるInputBox関数の呼び出し
VB.NETの関数は、C#からも利用できる。その具体的な利用方法については「TIPS:VB.NET固有の関数をC#で使用するには?」を参照していただきたい。
C#からは、InputBox関数はInteractionクラス(Microsoft.VisualBasic名前空間)の静的メソッドであるInputBoxメソッドとして利用可能だ。上記のVB.NETでの最初の呼び出し例は、C#では次のようになる。
string inputText;
inputText = Interaction.InputBox(
"質問内容", "タイトルバー文字列", "デフォルトの答え", 200, 100);
|
|
InputBox関数の呼び出し例(C#) |
C#にはパラメータを省略してメソッドを呼び出す機能がないため、パラメータを省略したVB.NETの呼び出しと同じ動作をさせるには、パラメータとしてその既定値を指定しなければならない(InputBox関数のパラメータの既定値はリファレンス・マニュアルに記されている)。
従って、上記のVB.NETでの2番目のInputBox関数の呼び出し例は、C#では次のようになる。
string inputText;
inputText = Interaction.InputBox("質問内容", "", "", -1, -1);
|
|
パラメータを省略した場合のInputBox関数の呼び出し例(C#) |
ちなみに、ダイアログ・ボックスのX座標(第4パラメータ)を省略(既定値である-1を指定)し、Y座標(第5パラメータ)を省略しなかった場合には、ダイアログ・ボックスの表示位置のX座標は画面のサイズにかかわらず「600」となる。同様に、Y座標のみを省略した場合には、表示位置のY座標は「350」となる。
カテゴリ:Windowsフォーム 処理対象:ダイアログ・ボックス
カテゴリ:C# 処理対象:VB.NET関数
使用ライブラリ:InputBox関数(Microsoft.VisualBasic名前空間)
関連TIPS:VB.NET固有の関数をC#で使用するには? |
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間