2

これは本質的に私がやろうとしていることです。特定のプログラムを実行したい回数を誰かが入力できるようにしたいと考えています。私が理解できないのは、数字の 10 を (textBox1.Text) に変更する方法です。良い方法があれば教えてください。私はプログラミングに非常に慣れていません。

int counter = 1;
while ( counter <= 10 )
{
    Process.Start("notepad.exe");
    counter = counter + 1;
}
4

5 に答える 5

5

これは、ユーザーが指定した入力を取得し、安全に整数 (System.Int32) に変換してカウンターで使用する方法を示しています。

int counter = 1;
int UserSuppliedNumber = 0;

// use Int32.TryParse, assuming the user may enter a non-integer value in the textbox.  
// Never trust user input.
if(System.Int32.TryParse(TextBox1.Text, out UserSuppliedNumber)
{
   while ( counter <= UserSuppliedNumber)
   {
       Process.Start("notepad.exe");
       counter = counter + 1;  // Could also be written as counter++ or counter += 1 to shorten the code
   }
}
else
{
   MessageBox.Show("Invalid number entered.  Please enter a valid integer (whole number).");
}
于 2012-12-31T19:07:17.007 に答える
2

System.Int32.TryParse(textBox1.Text, out counterMax)( MSDN のドキュメント) を試して、文字列を数値に変換してください。

これは、変換が成功した場合は true を返し、失敗した場合 (つまり、ユーザーが整数ではない何かを入力した場合) は false を返します。

于 2012-12-31T19:05:19.890 に答える
2

textBox1.Text は文字列を返します。これを int に変換する必要があります。ユーザー入力を受け取るため、安全に変換する必要があります。

int max;
Int32.TryParse(value, out max);
if (max)
{
    while ( counter <= max ) {}
}
else
{
    //Error
}
于 2012-12-31T19:07:07.643 に答える
0

この関数のように、TryCatch本体を使用します

bool ErrorTextBox(Control C)
    {
        try
        {
            Convert.ToInt32(C.Text);
            return true;
        }
        catch { return false; }
    }

と使用

于 2012-12-31T20:49:01.500 に答える
0

MaskedTextBox コントロールを使用してユーザーからの入力を取得することをお勧めします。これにより、数値のみが確実に提供されるようになります。機能性に縛られることはありませんTryParse

次のようにマスクを設定します:(「プロパティウィンドウ」を使用できます)

MaskedTextBox1.Mask = "00000";   // will support upto 5 digit numbers

次に、次のように使用します。

int finalRange = int.Parse(MaskedTextBox1.Text);
int counter = 1;
while ( counter <= finalRange )
{
    Process.Start("notepad.exe");
    counter = counter + 1;
}
于 2012-12-31T20:27:01.063 に答える