none
C#でVBのInputBoxを使うとき RRS feed

  • 質問

  • 参照の追加で、Microsoft VisualBasicを選択し、
    using Microsoft.Visualbasicとして、次のようにInputBoxを使おうとしました。

       staff_code = Interaction.InputBox("スタッフコードを入力してください(半角6文字)");

    しかし、
       「引数を'1'個指定できる、メソッド'InputBox'のオーバーロードはありません」
    とのエラーになります。

    どのように対処するのがよいのでしょうか。ご教示願います。


    zen73
    2009年7月9日 2:35

回答

  • ヘルプを見ましょう。
    Interaction. InputBox メソッド
    見ての通り、引数 5 つの一つのオーバーロードしか定義されていません。
    VB の場合省略可能引数が存在していますが、C# の場合引数の省略はできないので、省略時の既定値を指定してやる必要があります。
    既定値については、上記ページの「詳細については VisualBasic のトピック...」のリンク先を見てください。
    • 回答としてマーク zen73 2009年7月9日 3:31
    2009年7月9日 2:42
  • 単純に引数が足りないだけでしょう。

    InputBox 関数 (Visual Basic)
    http://msdn.microsoft.com/ja-jp/library/6z0ak68w(VS.80).aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク zen73 2009年7月9日 3:30
    2009年7月9日 2:43
    モデレータ
  • VisualBasicのメソッドを利用する場合引数を省略できません。
    必要のない場合、Type.Missingかnullを渡せば動作することもありますが、基本的にはすべて引数を指定しましょう。
    • 回答としてマーク zen73 2009年7月9日 3:30
    2009年7月9日 2:44

すべての返信

  • ヘルプを見ましょう。
    Interaction. InputBox メソッド
    見ての通り、引数 5 つの一つのオーバーロードしか定義されていません。
    VB の場合省略可能引数が存在していますが、C# の場合引数の省略はできないので、省略時の既定値を指定してやる必要があります。
    既定値については、上記ページの「詳細については VisualBasic のトピック...」のリンク先を見てください。
    • 回答としてマーク zen73 2009年7月9日 3:31
    2009年7月9日 2:42
  • 単純に引数が足りないだけでしょう。

    InputBox 関数 (Visual Basic)
    http://msdn.microsoft.com/ja-jp/library/6z0ak68w(VS.80).aspx


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/
    • 回答としてマーク zen73 2009年7月9日 3:30
    2009年7月9日 2:43
    モデレータ
  • VisualBasicのメソッドを利用する場合引数を省略できません。
    必要のない場合、Type.Missingかnullを渡せば動作することもありますが、基本的にはすべて引数を指定しましょう。
    • 回答としてマーク zen73 2009年7月9日 3:30
    2009年7月9日 2:44
  • Hongliangさん、trapemiyaさん、GX999さん、ありがとうございました。おかげさまで、
       staff_code = Interaction.InputBox("スタッフコードを入力してください(半角6文字)","","",200,100);
    とすることで、エラーを解消することができました。


    zen73
    2009年7月9日 3:30