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

 更新时间:2017年10月31日 10:07:06   作者:孤者自清  
这篇文章主要介绍了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#编程实现获取文件夹中所有文件的文件名

    C#编程实现获取文件夹中所有文件的文件名

    这篇文章主要介绍了C#编程实现获取文件夹中所有文件的文件名,可实现获取特定目录下制定类型文件名称的功能,涉及C#针对文件与目录的遍历、查询等操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Unity中Instantiate实例化物体卡顿问题的解决

    Unity中Instantiate实例化物体卡顿问题的解决

    这篇文章主要为大家详细介绍了Unity实现离线计时器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • c# Async streams的使用解析

    c# Async streams的使用解析

    这篇文章主要介绍了c# Async streams的使用解析,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • C# 中属性PropertyInfo的setvalue用法说明

    C# 中属性PropertyInfo的setvalue用法说明

    这篇文章主要介绍了C# 中属性PropertyInfo的setvalue用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • c# 深拷贝与浅拷贝的区别分析及实例

    c# 深拷贝与浅拷贝的区别分析及实例

    浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用. 深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
    2013-03-03
  • C# 变量作用域常用说明小结

    C# 变量作用域常用说明小结

    在C#编程中,变量作用域是一个重要概念,指的是变量在何处被定义和可以访问的范围,正确理解和使用变量作用域有助于提升代码的可读性和避免潜在的错误,感兴趣的可以了解一下
    2024-10-10
  • C# 下载文件 删除文件 写入文本的实例

    C# 下载文件 删除文件 写入文本的实例

    下面小编就为大家分享一篇C# 下载文件 删除文件 写入文本的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法

    C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法

    本文主要介绍了C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法:利用反射,读取一个类型的所有属性,然后再把属性转换成XML元素的属性或者子元素。下面注释比较完整,需要的朋友可以看下
    2016-12-12
  • 深入理解C#之接口

    深入理解C#之接口

    这篇文章主要介绍了C#接口(Interface)用法,较为详细的分析了C#中接口的功能、实现及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • C#实现顺序队列和链队列的代码实例

    C#实现顺序队列和链队列的代码实例

    今天小编就为大家分享一篇关于C#实现顺序队列和链队列的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10

最新评论