| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 726 人关注过本帖
标题:求教将text1的值拖到TEXT2的方法
只看楼主 加入收藏
liunis
Rank: 1
等 级:新手上路
帖 子:142
专家分:7
注 册:2021-9-25
结帖率:87.8%
收藏
已结贴  问题点数:10 回复次数:6 
求教将text1的值拖到TEXT2的方法
在网上搜不到答案,也不是复制粘贴,是将text1的值拖到TEXT2,拖动时会出现图标的那种,鼠标移到text2时还没放开鼠标键时TEXT2能否高亮显示,请教方法
搜索更多相关主题的帖子: 方法 鼠标 text1 移到 高亮 
2023-04-16 13:42
liunis
Rank: 1
等 级:新手上路
帖 子:142
专家分:7
注 册:2021-9-25
收藏
得分:0 
temp999.zip (941 Bytes)
2023-04-16 13:43
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:10 
这需求很简单,仅使用 vfp 的原生拖放功能就行。先了解这几个基本的属性、事件、方法: DragMode,DragOver, DragDrop
1. 将你的 text1 的 DragMode 设为 1 - 自动,运行表单后,在 text1 上按住鼠标就能看到效果
2. 进一步, text2 的 DragDrop 事件写上
   this.value = oSource.value
   再次运行表单, 当你松开鼠标时, text1 的值就到 text2 上了
至此,你已经学会 拖-放 操作最基本的两个概念:DragMode - 允许拖,DragDrop - 用户放下。看似高大上的拖放,也就这么简单

剩下的几个 Drag??? 可实现更多的需求,例如:你要求的目标加亮,这需要用到 DragOver 事件
3. text2 的 DragOver 中写一行
   wait window nowait oSource.name + icase(nState=0,'进入',nState=1,'离开','悬停')
   再次运行表单, 把 text1 拖到 text2 上,现在你知道 oSource 和 nState 是啥意思了吧
   假设你想加亮边框,就这么写:
   do case
   case nState == 0    && 拖进时加亮
       this.bordercolor = rgb(255,255,0)
   case nState == 1    && 拖走时恢复原貌
       this.ResetToDefault('bordercolor')
   endcase

再了解下其他相关的拖放相关内容,例如 DragIcon 属性、DragMode 为 2 - 手动模式、Drag 手工启动/停止拖操作,就能实现更多的控制
更复杂的拖放,还需要你了解操作系统提供的 OLE 拖放操作,仔细研读 OLE 开头的这些属性、方法、事件
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2023-4-17 07:59编辑过]


这家伙很懒,啥也没留下
2023-04-16 20:12
hdx60
Rank: 2
等 级:论坛游民
威 望:1
帖 子:80
专家分:37
注 册:2013-2-8
收藏
得分:0 
这么厉害,原来“拖”在这里
2023-04-16 21:03
liunis
Rank: 1
等 级:新手上路
帖 子:142
专家分:7
注 册:2021-9-25
收藏
得分:0 
回复 3楼 csyx
谢谢谢谢。还有 能不能区分 鼠标 左右键  比如指定鼠标右键拖动,因为左键用在别处
2023-04-17 11:27
my2318
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:289
专家分:640
注 册:2014-3-18
收藏
得分:0 
回复 3楼 csyx
以前没注意,现在学习了
2023-04-17 16:24
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:0 
以下是引用liunis在2023-4-17 11:27:03的发言:

还有 能不能区分 鼠标 左右键  比如指定鼠标右键拖动,因为左键用在别处


可以,只要指定手动方式就行
1. text1.DragMode 设为 0 - 手动拖放
2. text1.MouseDown 事件中判断是否按下右键,是就启动拖动
if nButton == 2
    this.drag(1)
endif

不过并不建议这样做,最好不要违反用户已熟悉的操作方式另辟蹊径
有很多方法可以区分用户想要实现的操作,例如,按下左键一定时间不松表示要执行拖放操作,或者同时 ctrl/shift/alt 和左键表示要拖放 。。。

这家伙很懒,啥也没留下
2023-04-17 21:44
快速回复:求教将text1的值拖到TEXT2的方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.075476 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved