如何获取grid 型DW 中刚被改变了宽度的列名?

wag_enu 2009-12-20 10:16:45
列可以用鼠标拖动改变宽度, 现在要想得到刚才改变了宽度的列名,用什么方法?
...全文
83 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunfor 2009-12-23
  • 打赏
  • 举报
回复
学习
pb8 2009-12-22
  • 打赏
  • 举报
回复
呵呵,有这个就可以了呀,同一时间事件里面当然只可以得到一个对象
你可以根据该事件里面的xpos及ypos的值来判断单击的是取得列名的左边还是右边,
如果是左边,取所有列中x<你单击列的x值的最大值
如果是右边,取所有列中x>你单击列的x值的最小值,
这样不就出来了么,
wag_enu 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pb8 的回复:]
新建一个数据窗口的事件,事件id为pbm_dwnlbuttonup
MessageBox('',string(dwo.name))就是刚拖的对象,
如果拖的是列标题就把_t去掉就是列名,
也可以在这个事件里面通过getcolumnname()函数来获取
[/Quote]

测试了一下,好像有点问题:
它怎么成了往哪边移动,获取到的列名就是哪边的列,
比如,拖动左边A列和右边B列中间的分隔线改变的是A列的列宽,如果将A列变窄(往左移动),这时取得的是A列的名称。
但是如果往右将A列变宽,这是取到的是B列的名称。

不知道是怎么的。
fuxiaoyang13 2009-12-22
  • 打赏
  • 举报
回复
学习学习!!!
wangxun0997 2009-12-20
  • 打赏
  • 举报
回复
这个目前没发现有没对应事件ID来处理,但可以通过放弃MOUSE左键来触发遍历列实现(我现在的本地列宽记忆就是这样实现的)。可能左右键+实例变量开关+Xpos/Ypos也可不必遍历都能实现。
pb8 2009-12-20
  • 打赏
  • 举报
回复
新建一个数据窗口的事件,事件id为pbm_dwnlbuttonup
MessageBox('',string(dwo.name))就是刚拖的对象,
如果拖的是列标题就把_t去掉就是列名,
也可以在这个事件里面通过getcolumnname()函数来获取

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧