每次单击按钮时面板移动

Panel Move Everytime on Button Click

我正在使用 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);

                }
            }
        }

    }

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

后续点击会发现 panel1.Location.Y 已经 <= 到 10 所以他们不会更新它的位置。

你不需要那个 while

你调试过你的代码吗?根据您的代码,它正在移动到满足条件的最终位置。 之后每次都进入第一个'if',因为这个值不是250(而是更少),所以忽略else,没有任何反应。

如果 Y 不小于面板的高度,您可能只需要 1 个检查,然后根据您的值向上移动 80。