2011年6月10日金曜日

(C#, VB.NET)InputBox の代用

Access や Excel 等の VBA には簡易的な入力ダイアログを表示する InputBox という関数があります。これを C# や VB.NET で実現する方法です。

■VB.NET
VBA と同様に InputBox が使用できます。第2パラメータ以降は省略可能です。
    Dim s As String
    s = InputBox("メッセージ", "タイトル", "既定値")

■C#
InputBox は標準ではサポートされていません。新たにダイアログ画面を作るという方法もありますが、VB と同じ方法で実現する為には、前準備を行います。
  1. アセンブリ Microsoft.VisualBasic を参照設定に追加
  2. using で Microsoft.VisualBasic ネームスペースを追加
using Microsoft.VisualBasic;

namespace SampleApplication
{
    public class SampleInputBox
    {
    :
後はクラス名の Interaction. を付ければ VB と同様に使えます。C# の場合はパラメータは全て省略できません。なお、ダイアログ表示位置の第4、第5パラメータは -1 とする事で省略と同じ扱いになります。
    string s;
    s = Interaction.InputBox("メッセージ", "タイトル", "既定値", -1, -1);

■環境
OS:Microsoft Windows XP Home Edition 日本語 Service Pack 3
IDE:Microsoft Visual Studio 2005 Standard Edition 日本語 Service Pack 1
Framework:Microsoft .NET Framework Version 2.0 SP2