首页 > 其他分享 >鼠标拖放操作

鼠标拖放操作

时间:2024-01-29 10:00:31浏览次数:22  
标签:鼠标 GridHitInfo moView moGridView 操作 null 拖放 MOView

开始拖放,源

 private void moGridView_MouseDown(object sender, MouseEventArgs e)
        {//点击鼠标左键时,记录点击信息
            if (Control.ModifierKeys != Keys.None) return;
            m_GridHitInfo = null;
            GridHitInfo hitInfo = moGridView.CalcHitInfo(new Point(e.X, e.Y));
            if (e.Button == MouseButtons.Left && hitInfo.RowHandle >= 0)
            {
                m_GridHitInfo = hitInfo;
            }
        }

        private void moGridView_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left && m_GridHitInfo != null)
            {
                Size dragSize = SystemInformation.DragSize;
                Rectangle dragRect = new Rectangle(new Point(m_GridHitInfo.HitPoint.X - dragSize.Width / 2,
                                                             m_GridHitInfo.HitPoint.Y - dragSize.Height / 2), dragSize);
                MOView moView = moGridView.GetRow(m_GridHitInfo.RowHandle) as MOView;

                if (!dragRect.Contains(new Point(e.X, e.Y)) && moView != null)
                {//为拖放设置数据
                    moGridView.GridControl.DoDragDrop(moView, DragDropEffects.Move);
                    DevExpress.Utils.DXMouseEventArgs.GetMouseArgs(e).Handled = true;
                }
            }
        }

结束拖放,接收并处理数据

  private void _mChart_DragDrop(object sender, DragEventArgs e)
        {//拖放完成接收到的数据
            MOView moView = e.Data.GetData(typeof(MOView)) as MOView;
            if (moView != null)
            {
                MessageBox.Show(moView.ProductCode);
            }
        }

        private void _mChart_DragOver(object sender, DragEventArgs e)
        {//拖放时鼠标显示效果
            if (e.Data.GetDataPresent(typeof(MOView)))
            {
                e.Effect = DragDropEffects.Move;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }

  

  

标签:鼠标,GridHitInfo,moView,moGridView,操作,null,拖放,MOView
From: https://www.cnblogs.com/friend/p/17993887

相关文章

  • 事务提交之后再执行某些操作 → 引发对 TransactionSynchronizationManager 的探究
    开心一刻昨晚,小妹跟我妈聊天小妹:妈,跟你商量个事,我想换车,资助我点呀妈:哎呀,你那分扣的攒一堆都够考清华的,还换车资助点,有车开就不错了小妹:你要是这么逼我,别说哪天我去学人家傍大款啊妈:哎呀妈,你脸上那褶子比你人生规划都清晰,咋地,大款缺地图呀,找你?小妹:......
  • Python 基于pymongo操作Mongodb学习总结
    实践环境Python3.6.4pymongo4.1.1pymongo-3.12.3-cp36-cp36m-win_amd64.whl下载地址:https://pypi.org/simple/pymongo/代码实践#!/usr/bin/envpython#-*-coding:utf-8-*-importdatetimeimportrandomimportpymongofrompymongoimportMongoClientfrombson.......
  • [刷题笔记] 关于栈 & 队列常用操作方法的再探索
    Part0:序其实本来这都是很基础的东西,可惜野路子出身基础并不扎实。借着这个机会整合一下吧。也做了一些题了解了一些基本操作方法。本文对于栈和队列的原理不再过多赘述,默认读者掌握基本原理。参考题单:数据结构加强001:栈和队列2024现代信息学测试1:栈和队列本文所讲例题......
  • Redis之list操作
    1lpush(name,values)#resp:上面是左,下面是右conn.lpush('girls','刘亦菲')#从左侧插入值conn.lpush('girls','迪丽热巴')#从左侧插入值  2rpush(name,values)表示从右向左操作conn.rpush('girls','xxx')  3lpushx(name,......
  • Redis之hash操作
    1hset(name,key,value)设置值conn.hset('userinfo','name','xxx')conn.hset('userinfo','age',18) 2hmset(name,mapping)批量设置conn.hmset('userinfo',{'name':'彭于晏','age&......
  • Redis字符串操作
    1set(name,value,ex=None,px=None,nx=False,xx=False)设置值conn.set('hobby','篮球')#带过期时间conn.set('age','19',ex=3)#秒#conn.set('age','19',px=3000)#毫秒#如果key存在才设置或不存在才设置#nx,如果设置为Tru......
  • 链表操作
    代码随想录移除元素。不设置虚拟头节点,分类讨论。structListNode*removeElements(structListNode*head,intval){structListNode*temp;//当头结点存在并且头结点的值等于val时while(head&&head->val==val){temp=head;//将新的头结点设置为head->next并删......
  • nodejs下载URL地址的文件后保存以及删除指定文件夹的操作
    这里下载文件用了axios去下载下载:publicasyncdownload_from(url,fileName){returnnewPromise(async(resolve,reject)=>{constdownload_dir=path.join(process.cwd(),AppConfig.config.download_file_path,this._job_id......
  • NGINX 实战操作(yarn-proxy)
    目录一、概述二、部署Hadoop环境三、部署yarn-proxyondocker1)部署docker2)部署docker-compose3)部署dnsmasq4)下载yarn-proxy5)修改配置6)开始部署7)通过subs_filter进行改进四、部署yarn-proxyonk8s一、概述NGINX代理是非常常见的,内网生成环境一般不让在本机直接访问,......
  • [office] Excel中2010版使用自定义名称简化计算公式的操作技巧
    假设企业申报工资基数为员工的基本工资,用户可将“基本工资”所在单元格区域命名为“申报工资基数”,今天,小编就教大家在Excel中2010版使用自定义名称简化计算公式的操作技巧。Excel中2010版使用自定义名称简化计算公式的操作步骤选择“定义名称”选项,在“员工基本信......