1

任务

  1. 在单个字段中创建一个接受整数作为输入的 Windows 应用程序,一次一个。
  2. 按钮 Process 会导致在输入字段的正下方显示该数字,但前提是它大于当前显示的数字(或者它是第一个处理的数字)。处理完零(0)后,停止接受更多输入。
  3. 作业的第三部分:显示(在输入字段上方)所有已处理数字的总和。

所以这是我的任务。

到目前为止,我完成了作业的第一部分和第三部分。我不知道如何开始第二部分。到目前为止我所拥有的是

 label1.Text = textBox1.Text;
 label2.Text = textBox1.Text;
 label3.Text =(Convert.ToInt32(label1.Text) + Convert.ToInt32(label2.Text)).ToString();

如果我不明白,让我试着解释一下

  • 我的第一个问题是如何使这个更具体..我希望能够在我的文本框中输入一个数字并将其发送到我的 label1 然后..当我输入下一个数字时它会转到标签 2 而不是label1.. 并重复到 label3-9..
  • 第二个问题:如何限制数字,以便标签 1(如果它是一个更大的数字)导致标签 2 不出现。
  • 最后一个问题,一旦在文本框中输入 0 并显示为标签,我如何才能到达哪里,它会导致所有数字的总和出现在另一个标签中......

很抱歉,如果这太过分了,我可以把这些问题分开......

这是我的作业看起来像 atm

private void textBox1_TextChanged(object sender, KeyPressEventArgs e)
{
    textBox1.MaxLength = 1;
    Char digit = e.KeyChar;
    if (!Char.IsDigit(digit) && digit != 8)
        e.Handled = true;
    for (int i = 0; i < Text.Length; i++)
    {
        int c = Text[i];
        if (c < '0' || c > '9')
        {
            Text = Text.Remove(i, 1);
        }
    }
}

private void processBtn1_Click(object sender, EventArgs e)
{
    int current = 0;
    int sum = 0;
    int num = Int32.Parse(textBox1.Text);
    if (num > 0)
    {
        sum += num;
        if (num > current)
        {
            label1.Text = num.ToString();
            current = num;
        }
    }
}

这就是我所拥有的..但是程序不像我想要的那样工作..我做错了什么?

4

1 回答 1

3

将输入的数字存储在标签中效果不佳。您可能会受到表单中标签数量的限制,或者您需要动态创建标签。您可以将数字存储在数组或列表中,但实际上您根本不需要存储数字,您可以保留数字的总和并在处理完每个数字后忘记它。

将当前显示的数字存储在变量中。如果你的程序不需要处理负数,你可以让它从零开始:

int current = 0;

您还需要一个变量来总结所有数字:

int sum = 0;

在按钮的事件处理程序中,解析文本框中的文本,检查是否为零,将其添加到总和中,并将其与当前显示的数字进行比较。如果较大,请将其放入标签中,并放入变量中:

int num = Int32.Parse(textBox1.Text);
if (num > 0)
{
    sum += num;
    if (num > current)
    {
        label1.Text = num.ToString();
        current = num;
    }
}
else
{
    label2.Text = sum.ToString();
    // stop accepting input, perhaps exit?
}
于 2013-02-06T21:55:36.530 回答