欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-14 14:30:16
文件拖拽:  效果:将一个文件拖拽到窗体的某个控件时,将该控件的路径显示在该控件上,只要拿到了路径自然可以读取文件中的内容了。  将一个控件的属性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缩放与拖拽,希望对大家有所帮助

上一篇:

下一篇: