一用Enter键实现物件的焦点切换 在PowerBuilder中已定义许多事件所对应的MessageID而在其所提供的元件
大部分有对应的keydown事件其ID值不一定相同例如在datawindow->pbm_dwnkey
singlelineedit->pbm_keydown其他参考使用手册因此先对使用的元件新增key
的使用者事件当user在元件上按任何按键时将会触发此keydown事件
你将获得所传的参数key(按键代码)keyflags(复合键代码)当所按的
是Enter时你就把焦点切换到下一元件或下一栏位
选择要处理的datawindowcontrol然后选择menu的declare的userevents
此时会显示一个使用者事件box
于eventname设定使用者事件名称例如:ue_checkkey然后在eventID填入
pbm_dwnkey(或从Pasteevent选择)然后按OK
你可在datawindowcontrols的script中selectevent里发现多了一个使用者
事件 ue_checkkey并且此事件会传递个参数keycodekeyunsignedlongkeyflags
在script中可以如下填写
choose case key
case KeyTab!//响应按Tab键
//writeyourcode
case KeyEnter!//响应按Enter键
//writeyourcode
case KeyEscape!//响应按Esc键
//writeyourcode
end choose
注意()keycode是Enumeratedatatype可在onlinehelp或browers中获得其属性
()你可以设定returnvalue:或
如果是在DataWindow上可参考以下的方式:
在DataWindow宣告一userevent:
()如ue_enter将EventID参考至pbm_dwnprocessenter
()在ue_enter加入以下的程式码
send(handle(this)long())
return
二在MDI视窗内加入其他Controls并使其在sheets视窗中正确显示
把MDIWindow的ClientArea打开(Resize)ClientArea可视为一种ControlPB将
它的名字内定为MDI_
//Example//mmrrareallinteger
//movetheclientareatobeginat(mm)mdi_Move(WorkspaceX()+mWorkspaceY()+m)
//Resizetheclientareabasedonthevalue(rr)yougivedmdi_Resize(rr)
需要注意的是ClientArea打开后区域内的Control会被盖掉
[] []