C# 文件拖拽和pixturBox缩放与拖拽功能

文件拖拽:

效果:将一个文件拖拽到窗体的某个控件时,将该控件的路径显示在该控件上,只要拿到了路径自然可以读取文件中的内容了。

将一个控件的属性AllowDrop设置为true,然后添加DragDrop、DragEnter时间处理函数,如下:

private void txtAppPath_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
  {
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
      e.Effect = DragDropEffects.Link;
    }
    else
    {
      e.Effect = DragDropEffects.None;
    }
  }
  private void txtAppPath_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
  {
    txtLocalFileName.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
  }

图片的缩放和拖拽:

一、实现鼠标滚轮控制图片缩放;

1、设置PixtureBox属性:

  Dock:none

  SizeMode:StretchImage

2、添加事件:

(1)设置绑定图片路径

private void ScrewInfoForm_Shown(object sender, EventArgs e)
  {
    //加载装配图纸
    string drawingPath = Path.Combine(@"\\192.168.2.136\PCS", productCode + ".png");
    try
    {
      pbxDrawing.Load(drawingPath);
    }
    catch (Exception ex)
    {
      MessageBox.Show("加载装配图纸失败,详细:" + ex.Message, "测量", MessageBoxButtons.OK, MessageBoxIcon.Error);
      return;
    }
  }

(2)添加事件1

pbxDrawing.MouseWheel += new MouseEventHandler(pbxDrawing_MouseWheel);
//实现滚轮缩放
  private void pbxDrawing_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
  {
    if (e.Delta < 0)
    {
      this.pbxDrawing.Width = this.pbxDrawing.Width * 9 / 10;
      this.pbxDrawing.Height = this.pbxDrawing.Height * 9 / 10;
    }
    else
    {
      this.pbxDrawing.Width = this.pbxDrawing.Width * 11 / 10;
      this.pbxDrawing.Height = this.pbxDrawing.Height * 11 / 10;
    }
  }

(3)添加事件2

//实现移动图片
  int xPos;
  int yPos;
  bool MoveFlag;
  private void pbxDrawing_MouseDown(object sender, MouseEventArgs e)
  {
    this.pbxDrawing.Focus();
    MoveFlag = true;//已经按下.
    xPos = e.X;//当前x坐标.
    yPos = e.Y;//当前y坐标.
  }
  //在picturebox的鼠标按下事件里.
  private void pbxDrawing_MouseUp(object sender, MouseEventArgs e)
  {
    MoveFlag = false;
  }
  //在picturebox鼠标移动
  private void pbxDrawing_MouseMove(object sender, MouseEventArgs e)
  {
    if (MoveFlag)
    {
      pbxDrawing.Left += Convert.ToInt16(e.X - xPos);//设置x坐标.
      pbxDrawing.Top += Convert.ToInt16(e.Y - yPos);//设置y坐标.
    }
  }

总结

以上所述是小编给大家介绍的c# 文件拖拽和pixturBox缩放与拖拽,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程宝库网站的支持!

C# 语言是在2000发布的,至今已正式发布了7个版本,每个版本都包含了许多令人兴奋的新特性和功能更新。同时,C# 每个版本的发布都与同时期的 Visual Studio 以及 .NET 运行时版本高度耦合,这也有助 ...