求助:关于下拉数据窗口的问题

pascal2001 2004-12-23 02:15:30
如何实现这个功能:下拉数据窗口可以聚焦,但被鼠标点击时不弹出选项,并且禁止下拉数据窗口聚焦时按向上、向下箭头键选择其他选项。也就是做成可以聚焦的只读的下拉数据窗口,请各位高手帮忙,多谢啦!
...全文
127 点赞 收藏 6
写回复
6 条回复
ouyangwu 2004年12月23日
教你一招,实现你的功能 简单有效,我用过了,呵呵
在EditChanged事件中写入
IF dwo.name = 'station' THEN
THIS.SetText(GetitemString(row,'station'))
END IF

在itemchanged事件中写入
IF dwo.name = 'station' THEN
SetText(GetitemString(row,'station'))
RETURN 1
END IF

在itemError事件中写入
IF dwo.name='station' THEN RETURN 1

以上station请自觉替换自己的列名 :)

目的就是不要用户能修改它嘛,呵呵,dddw.allowedit=true/false无所谓。
用户还可以点开dddw查看列表,但是就是不能修改:),无论编辑、上下键都一样。
如果你要达到 连那个DDDW列表都不能点开弹出的话,那你完全没有必要用DDDW或者你给它的tab设置为0
回复 点赞
pascal2001 2004年12月23日
难怪,找了很多资料都找不到实现的方法,但我看过这样的程序,数据窗口是 Tabular类型的,可以实现屏蔽向上、向下箭头按键,我的数据窗口是Grid类型的,目前还没找到屏蔽的方法;我决定给balloonman2002四十分,谁能提供解决办法剩下的40分就是他的
回复 点赞
zhangdatou 2004年12月23日
hehe 帮定
回复 点赞
balloonman2002 2004年12月23日
wm_parentnotify和wm_command有异曲同工之效,都供子窗口发生特定事件后用来向父窗口发送一定的消息,表示自己发生了变化,父对象可以执行自己的事件了。

相关内容可以参考:
http://www.mypcera.com/softxue/vb/new/m65.htm
回复 点赞
balloonman2002 2004年12月23日
DDDW列其实类似与ComboBox,它其实是由两部分组成,一部分是EDIT控件,一部分是下拉箭头,后者可以在DW的CLICK事件或LBUTTONDOWN事件中去屏蔽,但前者EDIT控件的消息无法屏蔽,因此你用鼠标点该列的右边箭头这个事件可以禁止其弹出下拉列表,但当用户点左边的空白输入区域时无法禁止其其弹出下拉列表,如果是其他语言,可以用子类技术屏蔽,但PB做不到,因此建议你还是干脆把这一列作成普通的非下拉列或者将列的TAB设为0、DISENABLE等方法将其屏蔽,不要允许其还可以聚焦了,否则比较困难。

如果是存粹的想要获取用户点击该列这个事件倒比较好办,可以借助wm_parentnotify消息,但想禁止该事件比较困难。
回复 点赞
hygougou 2004年12月23日
If dwo.name = '下拉字段' Then return 1
回复 点赞
发动态
发帖子
DataWindow
创建于2007-09-28

465

社区成员

2.0w+

社区内容

PowerBuilder DataWindow
社区公告
暂无公告