我正在使用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);
}
}
}
}
答案 0 :(得分:1)
第二个while
让它尽可能多地移动。
后续点击会发现panel1.Location.Y
已经&lt; = 10
,因此他们无法更新其位置。
您不需要while
。
答案 1 :(得分:1)
你调试了代码吗?根据您的代码,它会移动到符合条件的最终位置。 之后,每次进入第一个&#39; if&#39;,因为该值不是250(但更少),所以else被忽略,没有任何反应。
如果Y不小于面板的高度,则可能只需要1次检查,而不是根据您的值向上移动80.