0

何かをキャンセルした場合に、プログラムが try-catch ブロックに入らないようにするにはどうすればよいですか? 元:

try{
  int i=int.Parse(Interaction.InputBox("BlahBlahBlah"));
}
catch{
  //error handling
  return
}

しかし、「キャンセル」または上部の X を押すとどうなりますか? try-catch に進み、これを例外と見なします。したがって、エラー処理を行います。どうすればこれを止めることができますか?

4

1 に答える 1

3

ドキュメント ( http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.interaction.inputbox(v=vs.110).aspx )によると、ユーザーがキャンセルすると空の文字列が返されます。

あなたはこれが欲しいでしょう:

do {
    String text = Interaction.InputBox("Enter a number");
    if( text == "" ) return -1;
    Int32 number;
    if( Int32.TryParse( text, out number ) ) return number;
} while( true );

このようにして、有効な整数が入力されるか、ダイアログがキャンセルされるまで、ユーザーにプロンプ​​トが表示され続けます。

于 2013-11-09T00:47:53.023 に答える