每次单击按钮时面板移动
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。
我正在使用 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。