0

我有一个 Windows 窗体应用程序,一侧有一个小键盘,用于将值输入到 Label1。当用户按下 Enter 按钮时,应用程序应将值“推送”到堆栈上并在 Label2 中显示堆栈。我现在卡在应用程序将值存储在数组中并在屏幕上显示堆栈的部分。

Enter 按钮在单击时具有以下代码:

    private void btnEnter_Click_1(object sender, EventArgs e)
    {

            ArrayStack Stack = new ArrayStack();
            Stack.Push(label1, label2);
            label1.Text = "0";
    }

ArrayStack 类具有以下代码:

    public class ArrayStack
{
    int[] StackArray = new int[10];
    int Top = -1;


    public Label Push(Label Label1, Label Label2)
    {
            StackArray[Top + 1] = Convert.ToInt32(Label1.Text);
            Top = Top + 1;
            for (int counter = 0; counter == Top + 1; counter++ )
            {
                int num = 10 - counter;
                Label2.Text += "\r\n [" + num + "] " + StackArray[Top];
            }

            return Label2;           
    }

}

我在这里遇到的问题是它没有像我预期的那样填充 Label2,而是将其留空。我究竟做错了什么?

4

1 回答 1

0
        for (int counter = 0; counter == Top + 1; counter++ )
        {
            int num = 10 - counter;
            Label2.Text += "\r\n [" + num + "] " + StackArray[Top];
        }

将其更改为:

        for (int counter = 0; counter <= Top; counter++ )
        {
            int num = 10 - counter;
            Label2.Text += "\r\n [" + num + "] " + StackArray[Top];
        }

每次点击按钮时都会创建一个新堆栈。尝试使其成为会员。

于 2013-08-07T08:25:55.320 回答