我在检查文本框时遇到问题,并确保其中只有整数。
到目前为止,我能够确认文本框中有文本,但检查它们是否为整数是不起作用的。这是迄今为止我的代码。
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;
}
答案 0 :(得分:2)
使用您当前的模式,如下所示:
int tester;
if (!Int32.TryParse(textBox1.Text, out tester))
{
errorProvider1.SetError(textBox1, "must be integer");
return;
}
答案 1 :(得分:1)
为什么不使用MaskedTextBox?
答案 2 :(得分:0)
覆盖表单文本框中的Validating
事件,然后您可以对内容执行TryParse
。
public void textBox1_Validating(...)
{
// TryParse
}
答案 3 :(得分:0)
您可以使用int.TryParse方法检查字符串是否为整数:
int n = 0;
bool isNumber = int.TryParse(textBox1.Text, out n);
if (!isNumber)
return;
答案 4 :(得分:0)
如果您不想在编辑框中允许除数字之外的任何内容,请挂钩键盘事件,检查不是数字的字符并取消它们。
当您整理出一个文本框中需要哪些事件时,只需在其他文本框中重复使用相同的事件,因为您不必复制事件。
答案 5 :(得分:-1)
如果您开始使用ajax工具包,请将其保留为您的记录
<ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" TargetControlID="FUND_CD" FilterType="Custom" ValidChars="1234567890" runat="server">
</ajaxToolkit:FilteredTextBoxExtender>