asp.net C#中 PictureBox控件拖动与图片拖动代码

 

思路是这样的.得有三个变量.
记录x坐标: int xPos;
记录y坐标: int yPos;
记录是否按下鼠标: bool MoveFlag;

 代码如下 复制代码

//在picturebox的鼠标按下事件里,记录三个变量.
private void picBox_MouseDown(object sender, MouseEventArgs e)
{
    MoveFlag = true;//已经按下.
    xPos = e.X;//当前x坐标.
    yPos = e.Y;//当前y坐标.
}

//在picturebox的鼠标按下事件里.
private void picBox_MouseUp(object sender, MouseEventArgs e)
{
    MoveFlag = false;
}

//在picturebox鼠标移动
private void picBox_MouseMove(object sender, MouseEventArgs e)
{
    if (MoveFlag)
    {
        picBox.Left += Convert.ToInt16(e.X - xPos);//设置x坐标.
        picBox.Top += Convert.ToInt16(e.Y - yPos);//设置y坐标.
    }
}

这样就可以实现控件在容器里的移动

在pictureBox中拖动图片的实现代码     bool wselected = false;

 代码如下 复制代码

        Point p = new Point();
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            pictureBox1.Cursor = Cursors.Hand; //按下鼠标时,将鼠标形状改为手型
            wselected = true;
            p.X = e.X;
            p.Y = e.Y;
        }
        int driftX = 0, driftY = 0;
        int mx = 0, my = 0;
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (wselected)
            {
                driftX = p.X - e.X;
                driftY = p.Y - e.Y;

                mx = mx - driftX;
                my = my - driftY;

                Bitmap bm = new Bitmap(this.pictureBox1.Image);

                Graphics g = pictureBox1.CreateGraphics();
                g.Clear(pictureBox1.BackColor);
                g.DrawImage(bm, mx, my);

                p.X = e.X;
                p.Y = e.Y;

                bm.Dispose();
                g.Dispose();
            }
        }

        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            pictureBox1.Cursor = Cursors.Default; //松开鼠标时,形状恢复为箭头
            wselected = false;
        }

时间: 2024-10-12 07:38:57

asp.net C#中 PictureBox控件拖动与图片拖动代码的相关文章

在form1中,点击Button让在Form2中的pictureBox控件移动的C#例子代码

问题描述 在form1中,点击Button让在Form2中的pictureBox控件移动的C#例子代码我菜鸟一枚,向高手请教 解决方案 解决方案二:form1中如果有全局的form2对象,就直接在form2里写个方法就行了.如果不是,那么你可以自己学习一下c#的委托解决方案三:用委托,早晚要了解的,你去百度一下委托的用法.

chart控件生成的图片拖动提示404错误怎么办.!

问题描述 chart控件生成的图片拖动提示404错误怎么办.! 我发布之后拖动查询之后的图片到另一个页面提示404错误..找不到文件或者目录,求问各种大神应该怎么办

初识ASP.NET---ASP.NET中验证控件的用法

一.前言         在Web应用程序中,大都是对数据的提供或收集,对于数据的有效性验证是非常重要的,验证就是给所收集的数据应用的一系列规则.         为进行有效性验证而收集的数据来自于在应用程序中提供的Web窗体,Web窗体由不同的类型的HTML元素组成,可以对窗体元素应用不同的验证规则,对元素应用的规则越多,应用到数据上的有效性验证就越严格.          验证可以有客户端和服务器段的验证.客户端的验证主要是用JavaScript脚本,效率高,响应时间短,但安全性不好:服务器

ASP.NET MVC中图表控件的使用方法_实用技巧

微软发布了一个强大的ASP.NET的图表控件,支持丰富的图表选项设置-包括列,点,泡沫,饼图,圆环图,金字塔,漏斗,盒形图,面积,范围,AJAX的互动,以及更多.Microsoft图表控件示例项目包括ASP.NET页的图表样本超过200个.在这篇文章中,我将展示如何在ASP.NET MVC中使用图表控件. 这里介绍一个非常简单的项目,显示了一个类的结果比较.两个字段 - ID(这是唯一的一个学生)和GPA(平均成绩) - 代表一个特定的学生的结果.各种图表结果显示,学生的结果进行比较.我希望把重

ASP.NET3.5中AJAX控件

在Microsoft Visual Studio 2008集成开发环境中的ASP.NET版本是3.5,ASP.NET3.5中提供了有关AJAX的控件,这使得在ASP.NET中开发AJAX应用程序更加方便了.其中主要的控件ScriptManager 和UpdatePanel. ScriptManager UpdatePanel

ASP.NET Ajax中AutoComplete控件的使用

简介 AutoComplete控件就是在用户在文本框输入前几个字母或是汉字的时候,该控件就能从存放数据的文 或是数据库里将所有以这些字母开头的数据提示给用户,供用户选择,提供方便. 重要属性 1.TargetControlID:指定要实现提示功能的控件: 2.ServicePath:WebService的路径,提取数据的方法是写在一个WebService中的: 3.ServeiceMethod:写在WebService中的用于提取数据的方法的名字: 4.MinimumPrefixLength:用

asp.net(C#)中给控件添加客户端js事件的方法_实用技巧

放在服务器端,也可以用ajax来实现,不刷页面.但我觉得有更直接更简单方法,用一个js事件是可以实现的. 但,DropDownList不偈Button等控件提供了一些像"OnClientClick"前台事件,只有服务端事件. 想到,所有C#页面代码,最终都是生成HTML,js事件也是最终运在浏览器中,以Html为基础的.服务端控件最终生成的HTML控件有什么js事件,我们应该就能在aspx中给它添加相应的事件. DropDownList 生成的Htm是元素<Select>是

ASP.NET中TreeView控件使用小结

asp.net|treeview|控件 中国IT动力,最新最全的IT技术教程最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论 ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql 服务器 Win2000

ASP.NET 2.0中GridView控件的隐藏列的问题

Asp.net 2.0 GridView隐藏列visible="false" 后你就无法取得这列的值了, 而用datagrid就没有这个问题, MS这个混蛋老是改变游戏规则, 幸好我聪明, 在百度上搜到了别人的解决方法, 然后加入了自己的方法, 才解决问题: protected void GVList_RowDataBound(object sender, GridViewRowEventArgs e) { //隐藏不必要的列 if ((e.Row.RowType == DataCon