按钮上的每次面板移动单击

时间:2015-11-17 18:28:38

标签: c# .net winforms panel move

我正在使用WinForms。在我的表格中,我有一个面板和一个按钮。

目标:每次点击按钮,我都希望面板向上移动。

问题:我目前遇到的问题是面板仅向上移动一次。

    private void Button_Up_Click(object sender, EventArgs e)
    {
        if (panel1.Location.Y != 250)
        {
            while (panel1.Location.Y > 250)
            {
                panel1.Location = new Point(panel1.Location.X, panel1.Location.Y - 80);

            }
        }

        else  
        {
            if (panel1.Location.Y < 1000)
            {
                while (panel1.Location.Y > 10)
                {
                    panel1.Location = new Point(panel1.Location.X, panel1.Location.Y - 80);

                }
            }
        }

    }

enter image description here

2 个答案:

答案 0 :(得分:1)

第二个while让它尽可能多地移动。

后续点击会发现panel1.Location.Y已经&lt; = 10,因此他们无法更新其位置。

您不需要while

答案 1 :(得分:1)

你调试了代码吗?根据您的代码,它会移动到符合条件的最终位置。 之后,每次进入第一个&#39; if&#39;,因为该值不是250(但更少),所以else被忽略,没有任何反应。

如果Y不小于面板的高度,则可能只需要1次检查,而不是根据您的值向上移动80.