【问题标题】:Panel Move Everytime on Button Click每次单击按钮时面板移动
【发布时间】:2015-11-17 18:28:38
【问题描述】:

我正在使用 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 循环将继续移动面板,直到满足您的条件。

标签: c# .net winforms panel move


【解决方案1】:

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

随后的点击会发现panel1.Location.Y 已经10,因此他们不会更新其位置。

你不需要那个while

【讨论】:

  • 我删除了第二个,但面板仍然只移动一次。
【解决方案2】:

您是否调试过您的代码?根据您的代码,它正在移动到满足条件的最终位置。 之后,每次进入第一个'if',因为值不是250(而是更小),所以else被忽略,什么也没有发生。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多