使用文本框在分数文本框中输入数据

时间:2018-11-09 18:55:23

标签: c# winforms

这是正确的例子
enter image description here

需要使用int数据类型。

所以,我可以输入一个数字,但是我得到的只是一个数字的副本。

这是我在代码中得到的内容:enter image description here

       //create a string for the name 
        string name = txtName.Text;
        // create a int for the number 

        // have those now have to get three amounts 
        // for each name then store that 
        // make a size three array
        //innt to put the array in the for loop
        int[] x = new int[3];



        for (int i = 0; i < x.Length; i++)
        {
            //txtScore.Text
            //txtStoreScores.Text
            int covert = Int32.Parse(txtScore.Text);
            x[i] = covert;
            txtStoreScores.AppendText(x[i].ToString());

            // ok I just need one number 
            // and split them by each number
        }

2 个答案:

答案 0 :(得分:1)

老实说,尽管您选择了一个答案,但此反馈可能对将来的解决方案很有帮助。您的按钮一旦触发,便会触发一个事件,您可以在其中触发一个事件,以确保正确清理用户输入。假定用户将导致错误,因为他们可以输入的变量数量是无限的。

protected void btnAddScore_Click(object sender, EventArgs e)
{
     if(float.TryParse(txtGrade.Text, out grade) && grade >= 0)
          txtScores.Text += $"{grade}, ";
}

通过确保用户输入了有效的数字并且分数高于零,该简单的条件将被清除。特别是因为负数将不太可能。要点是,您的代码应反映用法。您的代码应考虑到可能发生的异常和差异。

另一个漂亮的概念,您直接根据输入进行输出。保存该信息时,您将需要解析数据。因此,请意识到您可能需要遵循以下原则:

var scores = txtScores.Text.Split(','); // An array.
txtScores.Text = String.Join(",", scores); // Converts array into single string

随着时间的流逝,该问题的复杂性将会增加,因此请注意这一点。希望这会有所帮助。至于数学,如果您执行以下操作,它将计算:

var sum = txtScores.Text.Split(", ").Sum(grade => (float)grade); 

上面的方法有一个潜在的错误假设,即所有人都会毫无问题地浮出水面。这些是您需要考虑的事项。如果不进行强制转换,则总和将由字符串的长度而不是值反映出来。

答案 1 :(得分:0)

如果我理解这个权利!!!您想在每次单击添加分数btn时将数字从txtScore追加到txtStoreScores !!!!

在这种情况下,您不需要循环,只需将其放入Add Scores btn事件处理程序中 txtStoreScores.Text + = txtScore.Text +“”;

您实际上需要提供更多详细信息和明确的问题。祝你好运!