是dispose+新创建   还是image自带函数的?(查MSDN没找到...)

解决方案 »

  1.   

    转贴using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Threading;namespace 拖动图片
    {
     /// <summary>
     /// Form1 的摘要说明。
     /// </summary>
     public class Form1 : System.Windows.Forms.Form
     {
      public System.Windows.Forms.PictureBox[] pictureBox=new PictureBox[2];
      //private System.Windows.Forms.PictureBox pictureBox2;
      /// <summary>
      /// 必需的设计器变量。
      /// </summary>
      private System.ComponentModel.Container components = null;  public Form1()
      {
       //
       // Windows 窗体设计器支持所必需的
       //
       InitializeComponent();
       for(int i=0;i<2;i++)
       {
        this.pictureBox[i].MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseUp);
        this.pictureBox[i].MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove);
        this.pictureBox[i].MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown);
       }   
                
       //
       // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
       //
      }  /// <summary>
      /// 清理所有正在使用的资源。
      /// </summary>
      protected override void Dispose( bool disposing )
      {
       if( disposing )
       {
        if (components != null) 
        {
         components.Dispose();
        }
       }
       base.Dispose( disposing );
      }  #region Windows Form Designer generated code
      /// <summary>
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改
      /// 此方法的内容。
      /// </summary>
      private void InitializeComponent()
      {
       System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
       this.SuspendLayout();
       this.pictureBox[0] = new System.Windows.Forms.PictureBox();
       this.pictureBox[1] = new System.Windows.Forms.PictureBox();
       
       // 
       // pictureBox1
       // 
       this.pictureBox[0].BackColor = System.Drawing.Color.Transparent;
       this.pictureBox[0].Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
       this.pictureBox[0].Location = new System.Drawing.Point(200, 192);
       this.pictureBox[0].Name = "pictureBox1";
       this.pictureBox[0].Size = new System.Drawing.Size(88, 72);
       this.pictureBox[0].SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
       this.pictureBox[0].TabIndex = 0;
       this.pictureBox[0].TabStop = false;
       /*this.pictureBox[1].MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseUp);
       this.pictureBox[1].MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove);
       this.pictureBox[1].MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown);*/
       // 
       // pictureBox2
       // 
       //this.Opacity=0.8;
       this.pictureBox[1].BackColor = System.Drawing.Color.DodgerBlue;
       this.pictureBox[1].Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image")));
       this.pictureBox[1].Location = new System.Drawing.Point(200, 72);
       this.pictureBox[1].Name = "pictureBox2";
       this.pictureBox[1].Size = new System.Drawing.Size(88, 64);
       this.pictureBox[1].SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
       this.pictureBox[1].TabIndex = 1;
       this.pictureBox[1].TabStop = false;
       /*this.pictureBox[2].MouseUp += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseUp);
       this.pictureBox[2].MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove);
       this.pictureBox[2].MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown);
       */
       
       // 
       // Form1
       // 
       this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
       this.ClientSize = new System.Drawing.Size(432, 348);
       this.Controls.Add(this.pictureBox[0]);
       this.Controls.Add(this.pictureBox[1]);
       this.Name = "Form1";
       this.Text = "Form1";   
       this.ResumeLayout(false);  }
      #endregion  /// <summary>
      /// 应用程序的主入口点。
      /// </summary>
      [STAThread]
      static void Main() 
      {
       Application.Run(new Form1());   
      }                  bool whetherSelected=false;
      Point p=new Point();  #region 事件代码
      private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
      {
                            whetherSelected=true;   
       p.X=Cursor.Position.X;
       p.Y=Cursor.Position.Y;    
      }  private void pictureBox1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
      {
       whetherSelected=false;
      }  private void pictureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
      {
       if(whetherSelected==true) 
       {    
        //加入一个函数,得到是哪个pictureBox
        int index=-1;
        for(int i=0;i<2;i++)
         if(this.pictureBox[i].Capture)
          index=i;
        this.pictureBox[index].Left=this.pictureBox[index].Left+(Cursor.Position.X-p.X);
        this.pictureBox[index].Top=this.pictureBox[index].Top+(Cursor.Position.Y-p.Y);
        
                    this.pictureBox[1-index].SendToBack();    p.X=Cursor.Position.X;
        p.Y=Cursor.Position.Y;  
       }
      }  
      #endregion  
     }
    }
      

  2.   

    http://blog.csdn.net/chengking/archive/2005/10/07/496739.aspx