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

如果您不想允许除数字之外的任何内容进入编辑框,请连接到键盘事件,检查不是数字的字符并将其取消。

当您在一个文本框上整理出需要哪些事件时,只需在其他文本框上重复使用相同的事件,因为您不必复制事件。

于 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 回答