【问题标题】:Windows Form Application - C# Getting User InputWindows 窗体应用程序 - C# 获取用户输入
【发布时间】:2020-02-02 23:37:17
【问题描述】:

我正在使用 C# 来制作 Windows 窗体应用程序。我有一个包含 4 个标签、4 个文本框和 3 个按钮的表单。唯一可以在其中输入任何内容的文本框是第一个框,其余的有 TapStop = false。我希望用户能够在第一个文本框中输入一堆数字,并且我希望将这些数字相加以获得平均值和总数。我已经有一个按钮,用户可以在输入内容后按下该按钮。我正在尝试做的类似于计算器。用户输入 1 个号码,然后是另一个号码,然后是另一个号码,依此类推。我想获取所有这些数字并得到总数、他们输入的数字数量和平均值。我无法准备好计算所有这些数字。我为“添加”按钮创建了一个事件处理程序,并为平均值和总计声明了变量。我在这 2 件事上遇到了麻烦:

1- 我不确定每次用户输入内容时如何获取输入。

2- 我不确定如何转换用户输入的数字,因为默认是文本框中的字符串。

试图尽可能具体,因为除了我创建的事件处理程序和我声明的变量之外我没有任何代码,因为我不确定下一步该做什么。

对这两件事有什么建议吗?谢谢。

【问题讨论】:

    标签: c# programming-languages windows-forms-designer


    【解决方案1】:

    1- 我不确定每次用户输入内容时如何获取输入。

    如果您想在不按下按钮的情况下根据用户输入更新您的值,您可以使用 TextChanged 事件,在哪里可以找到它?只需双击设计器中的文本框,然后每次用户更改此文本框中的文本时都会触发此事件。

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    
    }
    

    2- 我不确定如何转换用户输入的数字,因为默认是文本框中的字符串。

    int value = Convert.ToInt32(textBox1.Text);
    

    编辑

    所以根据您的评论,这是我的解决方案。

        //The entered values will be stored as List of integars.
        List<int> enteredValues = new List<int>();
    
        //The button will store each value in the List of integers.
        private void button1_Click(object sender, EventArgs e)
        {
            int value;
    
            if(int.TryParse(textBox1.Text,out value))
            {
                enteredValues.Add(value);
            }
            else
            {
                //Show error message here.
            }
        }
    
        //This button will calculate the sum of entered values.
        private void button2_Click(object sender, EventArgs e)
        {
            int totalValues = 0;
            foreach(int val in enteredValues)
            {
                totalValues += val;
            }
        }
    

    【讨论】:

    • 感谢您的建议!但我需要使用按钮,所以我无法删除它。我正在尝试做的类似于计算器。用户输入 1 个号码,然后是另一个号码,然后是另一个号码,依此类推。我想获取所有这些数字并得到总数、他们输入的数字数量和平均值。我无法准备好计算所有这些数字。
    • @rythm500 您需要在您的问题中更具体(非常具体)您的 cmets 与您原来写的非常不同
    • 对不起,堆栈上还是新的,更新问题更具体!
    • 我正在尝试遵循您的示例代码,但我对 if 语句有疑问。您能解释一下为什么需要 if 语句吗?因为我不确定要在 else 里面放什么,因为除了我已经拥有的 4 个标签、4 个文本框和 3 个按钮之外,我无法添加任何东西。有没有另一种方法来保存数字可以在没有 if 语句的情况下使用它们进行计算?
    • Int32.TryParse的返回值表示操作是否成功。更多信息,您可以参考Int32.TryParse Method
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多