private void button3_Click(object sender, EventArgs e)
        {
            PictureBox pic = new PictureBox();
            pic.Left = 100;
            pic.Top = 20;
            pic.Image = Image.FromFile("../Images/button_albums.png");
            pic.Parent = this;
            pic.Location = new Point(10,10); //显示位置
            this.Controls.Add(pic);
//添加事件
            pic.MouseDown += new MouseEventHandler(button1_MouseDown);
           pic.MouseDown += new MouseEventHandler(button1_MouseDown);//运行的时候pic不能移动
           pictureBox1.MouseDown += new MouseEventHandler(button1_MouseDown);//pictureBox1可以移动
           pictureBox1.MouseMove += new MouseEventHandler(button1_MouseMove);
                   }

解决方案 »

  1.   

    是,我是想用鼠标拖动
    直接添加的pictureBox1控件可以
    用代码添加的pic不可以 我想知道原因
      

  2.   


     private void Form1_Load(object sender, EventArgs e)
            {
                PictureBox pic = new PictureBox();
                pic.Left = 100;
                pic.Top = 20;
                pic.Width = 100;
                pic.Height = 100;
                pic.BackColor = Color.Black;
                // pic.Image = Image.FromFile("../Images/button_albums.png");
                pic.Parent = this;
                pic.Location = new Point(10, 10); //显示位置
                //添加事件
                pic.MouseDown += new MouseEventHandler(pic_MouseDown);
                pic.MouseMove += new MouseEventHandler(pic_MouseMove);
                pic.MouseUp += new MouseEventHandler(pic_MouseUp);//运行的时候pic不能移动
                this.Controls.Add(pic);
    }#region modify panel move&close
            private Point ptMouseCurrrnetPos, ptMouseNewPos, ptFormPos, ptFormNewPos;
            private bool blnMouseDown = false;        private void pic_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    blnMouseDown = true;
                    //Save window position and mouse position
                    ptMouseCurrrnetPos = Control.MousePosition;
                    ptFormPos = (sender as Control).Location;
                }
            }        private void pic_MouseMove(object sender, MouseEventArgs e)
            {
                if (blnMouseDown)
                {
                    //Get the current position of the mouse in the screen
                    ptMouseNewPos = Control.MousePosition;
                    //Set window position
                    ptFormNewPos.X = ptMouseNewPos.X - ptMouseCurrrnetPos.X + ptFormPos.X;
                    ptFormNewPos.Y = ptMouseNewPos.Y - ptMouseCurrrnetPos.Y + ptFormPos.Y;
                    //Save window position
                    (sender as Control).Location = ptFormNewPos;
                    ptFormPos = ptFormNewPos;
                    //Save mouse position
                    ptMouseCurrrnetPos = ptMouseNewPos;
                }
            }        private void pic_MouseUp(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                    //Return back signal
                    blnMouseDown = false;
            }
            #endregion