C# 用于接受Windows窗体C中所有值的文本框#
我写了一个算术运算程序。结果很好。 但我想说一点。 我想要一个文本框,它接受所有值,如正值、负值、十进制值(Int、Float、Long、Double)excpet字符串或字符。 当输入字符串或字符时,它应该抛出一条错误消息(我将在消息框中使用try&Catch执行此操作)C# 用于接受Windows窗体C中所有值的文本框#,c#,.net,winforms,C#,.net,Winforms,我写了一个算术运算程序。结果很好。 但我想说一点。 我想要一个文本框,它接受所有值,如正值、负值、十进制值(Int、Float、Long、Double)excpet字符串或字符。 当输入字符串或字符时,它应该抛出一条错误消息(我将在消息框中使用try&Catch执行此操作) 您可以使用try-catch,并将变量用作float,以便可以在文本框输入中自由输入float和int数据 private void button1_Click(object sender, EventArgs e)
您可以使用try-catch,并将变量用作float,以便可以在文本框输入中自由输入float和int数据
private void button1_Click(object sender, EventArgs e)
{
float num1, num2, res;
try
{
num1 = float.Parse(textBox1.Text);
}
catch (Exception)
{
MessageBox.Show("Error");
}
try
{
num2 = float.Parse(textBox2.Text);
}
catch (Exception)
{
MessageBox.Show("Error");
}
res = num1 * num2;
textBox3.Text = (num1 * num2).ToString();
}
您可以使用try-catch,并将变量用作float,以便可以在文本框输入中自由输入float和int数据
private void button1_Click(object sender, EventArgs e)
{
float num1, num2, res;
try
{
num1 = float.Parse(textBox1.Text);
}
catch (Exception)
{
MessageBox.Show("Error");
}
try
{
num2 = float.Parse(textBox2.Text);
}
catch (Exception)
{
MessageBox.Show("Error");
}
res = num1 * num2;
textBox3.Text = (num1 * num2).ToString();
}
使用
TryParse
,将num1
和num2
类型更改为最通用的(double
):
使用
TryParse
,将num1
和num2
类型更改为最通用的(double
):
NumericUpDown
接受除字符串或字符以外的所有值,如正值、负值、十进制值(Int、Float、Long、Double)。中断键入的消息框是邪恶的NumericUpDown
接受除字符串或字符以外的所有值,如正值、负值、十进制值(Int、Float、Long、Double)。中断键入的消息框是无效的,它不会处理浮点,只处理整数。好的,我正在编辑,如果你想让用户输入浮点,那么你可以直接解析它,而不是浮点,因为你可以将整数存储在浮点中,所以输入一个变量,然后计算它是正确的。这不会处理浮点,只处理整数。好的,我正在编辑,如果你想让用户输入float,那么你可以直接解析它float,而不是int,因为你可以将int存储在float中,所以输入一个变量,然后将其计算为wishwhat如果用户有意输入“0”,那么,0
将转换为double
,而,'0'
(带撇号)将不会被转换并且“0”不是有效值
消息将显示0在乘法中没有意义,但作为程序员,您应该能够接受0,因为它是一个结果,但这取决于规则。我得到一个错误名称“ShowMessage”在当前上下文中不存在
@gayan1991:我接受0
、或0.0
、或0e1
、或-0
以及任何数字格式;我拒绝的是字符'0'
如果这个人故意输入一个'0'怎么办?@gayan1991:嗯,0
将转换成double
,而'0'
(带撇号)将不会被转换并且“0”不是有效值
消息将显示0在乘法中没有意义,但作为程序员,您应该能够接受0,因为它是一个结果,但这取决于规则。我得到一个错误名称“ShowMessage”在当前上下文中不存在
@gayan1991:我接受0
、或0.0
、或0e1
、或-0
以及任何数字格式;我拒绝的是字符'0'
private void button1_Click(object sender, EventArgs e) {
// double as the most general numeric type
double num1, num2;
if (!double.TryParse(textBox1.Text, out num1)) {
if (textBox1.CanFocus)
textBox1.Focus();
MessageBox.Show(String.Format("\"{0}\" is not a valid value", textBox1.Text));
}
else if (!double.TryParse(textBox2.Text, out num2)) {
if (textBox2.CanFocus)
textBox2.Focus();
MessageBox.Show(String.Format("\"{0}\" is not a valid value", textBox2.Text));
}
else
textBox3.Text = (num1 * num2).ToString();
}