2

テキストボックスをチェックし、整数のみが含まれていることを確認するのに問題があります。

これまでのところ、テキストボックスにテキストがあることを確認できましたが、それらが整数であるかどうかのチェックは機能していません。これがこれまでに機能する私のコードです。

if (textBox1.Text.Length == 0)
{
    errorProvider1.SetError(textBox1, "need Cost of Disks");
    return;
}
if (textBox2.Text.Length == 0)
{
    errorProvider2.SetError(textBox2, "need Total disks in package");
    return;
}
if (textBox3.Text.Length == 0)
{
    errorProvider3.SetError(textBox3, "need the Gigabyte per disk");
    return;
}
try
{
    Double[] myValues = new Double[3];
    myValues[0] = Double.Parse(textBox1.Text);
    myValues[1] = Double.Parse(textBox2.Text);
    myValues[2] = Double.Parse(textBox3.Text);

    Double ppd = myValues[0] / myValues[1] / myValues[2];

    ppd = Math.Round(ppd, 3, MidpointRounding.AwayFromZero);

    label4.Text = ppd.ToString();
}
catch (FormatException)
{
    //errorProvider1.SetError(label4, "testing1");

    //errorProvider2.SetError(label4, "testing2");

    //errorProvider3.SetError(label4, "testing3");
    return;
}
4

6 に答える 6

2

現在のパターンを使用すると、次のようになります。

int tester;
if (!Int32.TryParse(textBox1.Text, out tester))
{
    errorProvider1.SetError(textBox1, "must be integer");
    return;
}
于 2012-07-25T18:32:34.433 に答える
1

MaskedTextBoxを使ってみませんか?

于 2012-07-25T18:32:00.180 に答える
0

フォームのテキストボックスでイベントを上書きすると、コンテンツValidatingに対してを実行できますTryParse

public void textBox1_Validating(...)
{
  // TryParse
}
于 2012-07-25T18:29:03.957 に答える
0

int.TryParseメソッドを使用して、文字列が整数であるかどうかを確認できます。

int n = 0;
bool isNumber = int.TryParse(textBox1.Text, out n);

if (!isNumber)
   return;
于 2012-07-25T18:30:29.057 に答える
0

編集ボックスに数字以外のものを許可したくない場合は、キーボードイベントにフックし、数字ではない文字をチェックしてキャンセルします。

1つのテキストボックスで必要なイベントを整理するときは、イベントをコピーする必要がないため、同じイベントを他のテキストボックスで再利用するだけです。

于 2012-07-25T18:48:47.830 に答える
-1

ajaxツールキットを使い始めた場合は、記録のためにこれを保管してください

<ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" TargetControlID="FUND_CD" FilterType="Custom" ValidChars="1234567890" runat="server">
                        </ajaxToolkit:FilteredTextBoxExtender>
于 2012-07-25T20:19:40.263 に答える