C# 在文本框中只允许整数
我在检查文本框并确保其中只有整数时遇到问题 到目前为止,我能够确认文本框中是否有文本,但检查它们是否为整数不起作用。这是我的代码,到目前为止仍然有效C# 在文本框中只允许整数,c#,winforms,textbox,C#,Winforms,Textbox,我在检查文本框并确保其中只有整数时遇到问题 到目前为止,我能够确认文本框中是否有文本,但检查它们是否为整数不起作用。这是我的代码,到目前为止仍然有效 if (textBox1.Text.Length == 0) { errorProvider1.SetError(textBox1, "need Cost of Disks"); return; } if (textBox2.Text.Length == 0) { errorProvider2.SetError(textBo
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;
}
重写表单文本框中的事件,然后可以对内容执行更改
public void textBox1_Validating(...)
{
// TryParse
}
可以使用int.TryParse方法检查字符串是否为整数:
int n = 0;
bool isNumber = int.TryParse(textBox1.Text, out n);
if (!isNumber)
return;
为什么不使用?使用当前模式,类似这样:
int tester;
if (!Int32.TryParse(textBox1.Text, out tester))
{
errorProvider1.SetError(textBox1, "must be integer");
return;
}
如果你不想在编辑框中输入除数字以外的任何内容,那么就钩住键盘事件,检查不是数字的字符,然后取消它们
当您在一个文本框中整理出需要哪些事件时,只需在其他文本框中重复使用相同的事件,因为您不必到处复制事件。如果您曾经开始使用ajax工具包,请将其保留下来作为记录
<ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" TargetControlID="FUND_CD" FilterType="Custom" ValidChars="1234567890" runat="server">
</ajaxToolkit:FilteredTextBoxExtender>
我建议使用正则表达式。谢谢你的帮助。不得不将int改为double,但后来成功了。这与问题有什么关系?由于某种原因,文章的其余部分没有显示,我包含了一个代码。啊,好吧,我没有意识到你的文章中还有更多内容。但是再一次,如果你仔细看这个问题,它是关于WinForms的,而不是ASP.net,所以这对这个问题没有多大帮助。