当前位置: 移动技术网 > IT编程>开发语言>c# > C# 文件拖拽和pixturBox缩放与拖拽功能

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
文件拖拽:  效果:将一个文件拖拽到窗体的某个控件时,将该控件的路径显示在该控件上,只要拿到了路径自然可以读取文件中的内容了。  将一个控件的属性a

文件拖拽:

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

 将一个控件的属性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缩放与拖拽,希望对大家有所帮助

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网