Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#文本框中循环_C# - Fatal编程技术网

在C#文本框中循环

在C#文本框中循环,c#,C#,我正在尝试将用户输入加倍到4个不同的文本框中。然后,一旦用户单击“计算”按钮,将发生以下情况: foreach循环运行,解析textbox.text使其加倍,然后添加 把他们列在一个名单上 对于列表中的循环运行和索引,添加 把他们都收拾起来 上一步的列表项总和除以列表中的值数,结果输入到另一个文本框中 当我运行它时,不会发生错误,但结果不会显示在文本框中。为什么什么都没展示出来 private void CalculateButton_Click(object sender, EventAr

我正在尝试将用户输入加倍到4个不同的文本框中。然后,一旦用户单击“计算”按钮,将发生以下情况:

  • foreach循环运行,解析textbox.text使其加倍,然后添加 把他们列在一个名单上
  • 对于列表中的循环运行和索引,添加 把他们都收拾起来
  • 上一步的列表项总和除以列表中的值数,结果输入到另一个文本框中
当我运行它时,不会发生错误,但结果不会显示在文本框中。为什么什么都没展示出来

private void CalculateButton_Click(object sender, EventArgs e)
        {
            double gpa = 0;
            List<double> grades = new List<double>();

            foreach(Control textBox in Controls)
            {
                if ((textBox.GetType().ToString() == "System.Windows.Form.Textbox") && (textBox.Name.Contains("gradeBox")))
                {
                    grades.Add(double.Parse(textBox.Text));
                }
            }

            for(int i =0; i<grades.Count; i++)
            {
                gpa += grades[i];
            }
            gpa /= grades.Count;

            gpaBox.Text = gpa.ToString();
        }
private void calculate按钮点击(对象发送者,事件参数e)
{
双gpa=0;
列表等级=新列表();
foreach(控件中的控件文本框)
{
if((textBox.GetType().ToString()==“System.Windows.Form.textBox”)&&(textBox.Name.Contains(“gradeBox”))
{
grades.Add(double.Parse(textBox.Text));
}
}

for(int i=0;i看起来textbox的名称空间不太正确。它应该是System.Windows.Forms.TextBox。请注意“s”和大写字母“B”。以下是正确的版本

private void CalculateButton_Click(object sender, EventArgs e)
        {
            double gpa = 0;
            List<double> grades = new List<double>();

            foreach (Control textBox in Controls)
            {
                if ((textBox.GetType().ToString() == "System.Windows.Forms.TextBox") && (textBox.Name.Contains("gradeBox")))
                {
                    grades.Add(double.Parse(textBox.Text));
                }
            }

            for (int i = 0; i < grades.Count; i++)
            {
                gpa += grades[i];
            }
            gpa /= grades.Count;

            gpaBox.Text = gpa.ToString();
        }
private void calculate按钮点击(对象发送者,事件参数e)
{
双gpa=0;
列表等级=新列表();
foreach(控件中的控件文本框)
{
如果((textBox.GetType().ToString()==“System.Windows.Forms.textBox”)&&(textBox.Name.Contains(“gradeBox”))
{
grades.Add(double.Parse(textBox.Text));
}
}
对于(int i=0;i你是否把调试器附加到你的代码中?你是否试过一行一行地执行它,以确保它按照你所期望的方式运行?而不是将类型名与字符串进行比较,考虑使用“模式匹配”WOW,谢谢你,它是有效的!我不敢相信它是如此简单的东西。