.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」となる。End of Article

カテゴリ:Windowsフォーム 処理対象:ダイアログ・ボックス
カテゴリ:C# 処理対象:VB.NET関数
使用ライブラリ:InputBox関数(Microsoft.VisualBasic名前空間)
関連TIPS:VB.NET固有の関数をC#で使用するには?
 
この記事と関連性の高い別の.NET TIPS
VB.NET固有の関数をC#で使用するには?
文字列中の指定された位置の文字列を取得するには?
文字列を文字列により分割するには?(VB.NET関数活用)
[ASP.NET]ASP.NETでVB.NET固有の関数をC#から利用するには?
文字列中の1文字を取得するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間