hur.cn - 华软网

 热门搜索

运行时用鼠标调整dw的列宽,会触发哪个事件?

  作者:未知    来源:网络    更新时间:2018/8/6
如题
------华软网友回答------
应该有不少吧
至少clicked会被触发
------华软网友回复------
我要知道调整完后触发哪个事件?

------华软网友回复------
帮顶
------华软网友回复------
resize事件
------华软网友回复------
主要是click\pbm_lbuttondown\pbm_lbuttonup三个事件
------华软网友回复------
還有dragdrop等事件
------华软网友回复------
dw click 事件将Object.DataWindow.Syntax.Modified=No

然后在pbm_lbuttonup事件判断   Object.DataWindow.Syntax.Modified是否等于Yes
------华软网友回复------
都不行
调整dw列宽好像不会触发任何事件

------华软网友回复------
dw中有根线,
这根线要求和dw宽度一样长,
因此一旦改变了dw列宽,必须实时调整这根线长度和dw宽保持等长

现在我用的方法是:用个实例变量记录dw宽度,在mousemove事件里比较这个变量和实际的dw宽度是否相等,
不等即表示dw宽度改变了
------华软网友回复------
那你用這方法實現沒呀?
------华软网友回复------
实现是实现了,
不过从理论上讲这个方法效率低,浪费资源,当然实际运行中是感觉不到的
------华软网友回复------
我查找了一下资料,目前我手里没有这方面的资料。
用pb测试了一下,可在mousemove里面。
判断:
1、左键按下
2、鼠标的标志
3、可能在加上判断是否不在对象上面,这个可以在clicked的时候,看dwo.name是否是datawindow.

------华软网友回复------
csdsjkk() 的方法我觉得用mousedown和mouseup判断比较好。
------华软网友回复------
我测过鼠标拖动列宽时不触发mousedown和mouseup
------华软网友回复------
是用mousemove事件,
我现在就是触发这个事件解决的
------华软网友回复------
看你是怎么改变列宽的,
如果是程序执行的时候用鼠标去更改列宽的话就是上面大家说的那些事件了
但是要用代码去改变的话恐怕不会有click事件 lbuttonup,lbuttondown事件了
------华软网友回复------
一个很笨但很有效的方法:

定义一个窗口变量 boolean ib_moveing 

数据窗口的 鼠标按下事件,写 
ib_moving = true
timer(1)

在鼠标弹起事件写 
ib_moving = false


在timer事件里,写:
if ib_moving = false then
"调整列宽的语句"
timer(0)
end if

------华软网友回复------
鼠标移到两列中间线时,变成十字形状,此时按下左键可以通过左右移动鼠标来改变列宽,
不过,请注意,此时按下左键不会触发mousedown事件,放开也不触发mouseup事件
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。