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缩放与拖拽,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

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

    文件拖拽: 效果:将一个文件拖拽到窗体的某个控件时,将该控件的路径显示在该控件上,只要拿到了路径自然可以读取文件中的内容了. 将一个控件的属性AllowDrop设置为true,然后添加DragDrop.DragEnter时间处理函数,如下: private void txtAppPath_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Fi

  • .net core版 文件上传/ 支持批量上传拖拽及预览功能(bootstrap fileinput上传文件)

    上篇文章给大家介绍了MVC文件上传支持批量上传拖拽及预览文件内容校验功能 本篇内容主要解决.net core中文件上传的问题  开发环境:ubuntu+vscode 1.导入所需要的包:nuget install bootstrap-fileinput 注意:这里的导包需要在终端导入[需要在wwwroot文件夹下执行nuget命令]如下图 如果发现没有nuget命令,则需要通过apt-get 或者yum 给系统安装nuge包管理工具,这个nuget和vscode中的插件不是一回事 2前台页面编写

  • 原生js实现拖拽移动与缩放效果

    本文实例为大家分享了js实现拖拽移动与缩放效果的具体代码,供大家参考,具体内容如下 效果图如下-实现了简单的拖拽和缩放功能 第一步-简单的拖拽功能 // 创建一个MoveClass构造函数 function MoveClass(id, options = {}) { // 绑定ele属性 this.ele = document.querySelector(id); this.move(); } // 给MoveClass原型上绑定move方法 MoveClass.prototype.move =

  • Vue拖拽组件列表实现动态页面配置功能

    需求描述 最近在做一个后台系统,有一个功能产品需求是页面分为左右两部分,通过右边的组件列表来动态配置左边的页面视图,并且左边由组件拼装起来的视图,可以实现上下拖拽改变顺序,也可以删除. 根据这个需求我做了下面这个demo. 功能分解 右边的组件列表,可以通过拖拽克隆到左边,拖拽结束后右边组件列表数量不会减少 左边的组件可以展开或收起 左边的组件可以上下拖拽,删除,但不可向右边拖拽 左边组件拖拽过程中不改变其展开和收起状态 demo截图 代码地址 vue-draggable-list 代码预览 <

  • 基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能

    ngDraggable.js是一款比较简单实用的angularJS拖拽插件,借助于封装好的一些自定义指令,能够快速的进行一些拖拽应用开发.首先先介绍一些基本的概念; •ng-drop:是否允许放入拖拽元素 •ng-drop-success($data, $event):拖拽元素放入的回调;$data:放入元素数据:$event拖拽事件对象 •ng-drag:元素是否允许拖拽 •ng-drag-success($data, $event):$data:拖拽元素数据,$event拖拽元素事件对象 •

  • php文件上传及下载附带显示文件及目录功能

    主页面wenjianceshi.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-

  • PHP实现图片的等比缩放和Logo水印功能示例

    本文实例讲述了PHP实现图片的等比缩放和Logo水印功能.分享给大家供大家参考,具体如下: /** * 等比缩放函数(以保存的方式实现) * @param string $picname 被缩放的处理图片源 * @param int $maxx 缩放后图片的最大宽度 * @param int $maxy 缩放后图片的最大高度 * @param string $pre 缩放后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>s_a.jpg */ func

  • Android音频处理之通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能

    音频这方面很博大精深,我这里肯定讲不了什么高级的东西,最多也只是一些基础类知识,首先,我们要介绍一下Android他提供的录音类,实际上他有两个,一个是MediaRecorder,还有一个就是我们今天要用到的AudioRecord,那他们有什么区别呢? 一.区别 MediaRecorder和AudioRecord都可以录制音频,区别是MediaRecorder录制的音频文件是经过压缩后的,需要设置编码器.并且录制的音频文件可以用系统自带的Music播放器播放. 而AudioRecord录制的是P

  • Swift缩放并填充图片功能的实现

    摘要 直接操作图片来实现它的缩放或者填充多余空间,首选 UIGraphicsBeginImageContext 函数来实现,它就相当于一个画布,你甚至可以用它来涂鸦. 最近有一个需求,就是将图片先等比例缩放到指定大小,然后将空余出来空间填充为黑色,返回指定大小的图片. 这种直接操作图片的需求,就要考虑使用 UIGraphicsBeginImageContext 函数实现.它可以理解为一个画布,我们只需要把图片放在画布的对应位置,把画布的多余地方全部涂成黑色就完成. 实现 先看代码,然后再分析:

  • MVC文件上传支持批量上传拖拽及预览文件内容校验功能

    网站中的上传相信大家都不陌生,也算是一个小小的技术难点,尤其时在asp.net中,上传的一些大小限制以及上传的进度的控制,以及用户体验等方面,今天在这里分享一个在asp.net mvc模式下的文件上传,同样适用于其它web类型bootstrap-fileinput . 它来自一个开源项目 git:https://github.com/kartik-v/bootstrap-fileinput/ 文档地址:http://plugins.krajee.com/file-input 用一个下午的时间将文

随机推荐