.net c# winform如何用鼠标随意移动控件,修改控件值,并导出成图片

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

想要在winform中用鼠标随意移动控件,只需要处理好控件的三个内置方法即可

(1).通过鼠标移动事件,来重新定位控件的位置

(2).通过鼠标按下事件,确定是否点击中有效控件,并将光标修改

1. Move_MouseMove

        /// <summary>
        /// 鼠标按下为true,放开为false
        /// </summary>
        private bool mousedown = false;
        /// <summary>
        /// 鼠标在事件源的位置,分别为x和y坐标
        /// </summary>
        private int currentx = 0;
        private int currenty = 0;

        private void Move_MouseDown(object sender, MouseEventArgs e)
        {
            currentx = e.X;
            currenty = e.Y;
            mousedown = true;
            if (sender is TextBox)
            {
                ((TextBox)sender).Cursor = Cursors.Arrow;
            }
        }

2. Move_MouseUp

        private void Move_MouseUp(object sender, MouseEventArgs e)
        {
            mousedown = false;
            if (sender is TextBox)
            {
                ((TextBox)sender).Cursor = Cursors.IBeam;
            }
        }

3. Move_MouseDown

        private void Move_MouseMove(object sender, MouseEventArgs e)
        {
            if (mousedown)
            {
                // 获取当前屏幕的光标坐标
                Point pTemp = new Point(Cursor.Position.X, Cursor.Position.Y);
                // 转换成工作区坐标
                pTemp = this.PointToClient(pTemp);
                // 定位事件源的 Location
                Control control = sender as Control;
                control.Location = new Point(pTemp.X - currentx, pTemp.Y - currenty);
                zlbllocation.Text = "坐标 x:" + (pTemp.X - currentx).ToString() + " y:" + (pTemp.Y - currenty).ToString();
            }
        }

可以将当前结果转成图片

        private void zlblsave_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            SaveFileDialog save = new SaveFileDialog();
            save.FileName = "img" + DateTime.Now.ToString("yyyymmss") + ".png";
            save.Filter = "(*.png)|*.png|" + "(*.*)|*.*";
            save.RestoreDirectory = true;
            if (save.ShowDialog() == DialogResult.OK)
            {
                Bitmap img = new Bitmap(zPalCon.Width, zPalCon.Height);
                zPalCon.DrawToBitmap(img, new Rectangle(0, 0, img.Width, img.Height));
                img.Save(save.FileName);
            }
            save.Dispose();
        }

以下是效果图.

移动前:

移动后:

动态展示效果:

附件:下载该文件资源,减少时间成本(增值服务)
winform控件移动
winform窗体下控件移动,并将移动后的结果,导出成图片
不商用,只限学习使用,使用后请删除
上传者拥有该资源完整版权,下载既表明已授权您可以进行报备商用,无报备或者使用后报备,视为侵权,报备后使用,为合法有效使用,报备方式,下载后,在下载列表,点击报备,填写使用场景即可
文件部分展示图(单击放大)
winform控件移动winform控件移动winform控件移动
留言
该资源可下载
File Source
.rar
70.99 KB
winform控件移动winform控件移动winform控件移动
最新结算
股权转让协议意向书模板
类型: .docx 金额: CNY 2.23¥ 状态: 待结算 详细>
股权转让协议意向书模板
类型: .docx 金额: CNY 0.28¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 2.39¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 0.3¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章