C# 从两个文本框中获取文本并将元素添加到数组中
我想将文本框中的元素添加到数组中,但每次尝试添加名称时,都会引发异常。我想在单击按钮后添加元素C# 从两个文本框中获取文本并将元素添加到数组中,c#,C#,我想将文本框中的元素添加到数组中,但每次尝试添加名称时,都会引发异常。我想在单击按钮后添加元素 private void Grade_Click(object sender, EventArgs e) { string name; double grade; nametextbox.Text = ""; gradetextbox.Text = "";
private void Grade_Click(object sender, EventArgs e)
{
string name;
double grade;
nametextbox.Text = "";
gradetextbox.Text = "";
for (int i = 0; i < 10; i++)
{
grade = Convert.ToDouble(gradetextbox.Text);
grades[i] += grade;
name = nametextbox.Text;
names[i] += name;
}
}
private void Grade\u单击(对象发送者,事件参数e)
{
字符串名;
双级;
nametextbox.Text=”“;
gradetextbox.Text=”“;
对于(int i=0;i<10;i++)
{
grade=Convert.ToDouble(gradetextbox.Text);
等级[i]+=等级;
name=nametextbox.Text;
名称[i]+=名称;
}
}
您可以执行以下操作:
gradetextbox.Text = "";
grade = Convert.ToDouble(gradetextbox.Text);
它将Text
属性设置为空字符串。然后你要这样做:
gradetextbox.Text = "";
grade = Convert.ToDouble(gradetextbox.Text);
它正在尝试将空字符串转换为double
,这显然不起作用,因此会引发异常
您可能需要的是:
private double[] grades = new double[10]; // 10 grades
private string[] names = new string[10]; // 10 names
private int currentIndex = 0;
private void Grade_Click(object sender, EventArgs e)
{
if (currentIndex > 10)
{
MessageBox.Show("No more enteries allowed");
}
string name;
double grade;
if (double.TryParse(gradetextbox.Text, out grade))
{
grades[currentIndex] += grade;
}
else
{
MessageBox.Show("Grade enterd is not a valid grade");
return;// do nothing else
}
name = nametextbox.Text;
names[i] += name;
// now clear the textboxes so user can enter another value
nametextbox.Text = "";
gradetextbox.Text = "";
currentIndex = currentIndex + 1;
}
很抱歉,它表示索引超出了名称的范围,而grade表示未处理的附加格式,您可以在其中定义
grades[]
你确定成绩文本框的输入可以转换为双精度吗?不假设用户会输入一个数字,但在我的测试中,每次我都会在成绩框中输入一个数字,索引超出范围的错误怎么办?我将名称硬编码到数组中,用户输入的空格为空。第一部分工作时出现了一个有趣的错误,然后把那些放好