none
(菜鸟问题)C# 点击按钮控制标签移动 RRS feed

  • 问题

  • 点击button,每次点击事件使label水平移动,(这对我也很简单);

    当标签到窗体边缘时反向平移。周而复始(这里就不会了)

    这是大一老师给我们的国庆作业,

    帮帮宝宝吧

    2019年10月5日 11:46

全部回复

  • 没人回复,惨
    2019年10月6日 10:56
  • Hi,

    你只需要对窗口的边界进行判断即可,同时可以设置一个布尔变量来判断移动的正负方向。然后使用简单的if语句就可以实现。

    以下为Winforms项目示例代码。

        // 默认向右移动,每次移动50
        bool isPositive = true;
        private void button1_Click(object sender, EventArgs e)
        {
            // 判断下次移动后是否超出右侧边界
            if (isPositive && label1.Location.X + label1.Width + 50 < this.Width)
            {
                // 未超出,向右移动50
                label1.Location = new Point(label1.Location.X + 50, label1.Location.Y);
            }
            else
            {
                // 超出边界,方向置反
                isPositive = false;
            }
    
            // 使用逻辑非运算符!,判断是否为反方向(从右往左)
            if (!isPositive && label1.Location.X - 50 > 0)
            {
                // 若未超出左侧边界,向左移50
                label1.Location = new Point(label1.Location.X - 50, label1.Location.Y);
                // 若下次左移超出边界,则重置方向为正
                if (label1.Location.X - 50 < 0)
                {
                    isPositive = true;
                }
            }
        }

    Regards,

    Kyle


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年10月7日 2:04
    版主