制作屏保,图片的移动

牧云@^-^@ 提交于 2020-02-03 15:01:16

public partial class ImageMove : Form
    {
        public ImageMove()
        {
            InitializeComponent();
        }

        int x = 1;//x为1代表水平向右移动,-1代表水平向左移动
        int y = 1;//y为1代表垂直向下移动,-1代表垂直向上移动
        int move = 5;//每次移动的距离,水平和垂直都是一样的
        private void timer1_Tick(object sender, EventArgs e)
        {
            //根据x值设置图片的位置
            if (x == 1)
            {
                this.pictureBox1.Left += move;
            }
            else
            {
                this.pictureBox1.Left -= move;
                
            }
            //根据y值设置图片位置
            if (y == 1)
            {
                this.pictureBox1.Top += move;
            }
            else
            {
                this.pictureBox1.Top -= move;
            }

            //水平方向
            //撞到右边(减20主要是考虑到窗体有边框)
            if(x==1&&this.pictureBox1.Left+this.pictureBox1.Width>=this.Width-20)
            {
                x = -1;
            }
            //撞到左边
            else if (x == -1 && this.pictureBox1.Left <= 0)
            {
                x = 1;
            }

            //垂直方向
            //撞到底端(37代表标题栏的高度)
            if(y==1&&this.pictureBox1.Top+this.pictureBox1.Height>= this.Height-37)
            {
                y = -1;
            }
            //撞到顶端
            else if(y==-1&&this.pictureBox1.Top <= 0)
            {
                y = 1;
            }

        }
    }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!