命令按钮怎么不能用键盘?

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2017-03-06 14:26:14

  问:在大作《我是新手,请教一个问题,命令按钮怎么不能用键盘?》中提到:
请问:我在设计登陆窗口时,用命令按钮,但只能用鼠标驱动,键盘的Enter键不起作用,这是为什么?各位高手:回答我好吗?

答:(有多条,虽然答案不相同,其实可以从不同的用途来理解,故都罗列于此。)

1:Re: 我是新手,请教一个问题,命令按钮怎么不能用?
yiyi  地说:

默认是TAB键转移焦点,空格键触发,要变为方向键转移焦点,回车键触发,用以下代码:
窗口的key事件:
GRAPHICOBJECT cb_control //定义环境变量
CHOOSE CASE KEY
CASE keyrightarrow! //按光标右键右移焦点
keybd_event(9,0,0,0)
keybd_event(9,0,2,0)
CASE keydownarrow! //按光标下键右移焦点
keybd_event(9,0,0,0)
keybd_event(9,0,2,0)
CASE keyleftarrow! //按光标左键左移焦点
keybd_event(16,0,0,0)
keybd_event(9,0,0,0)
keybd_event(16,0,2,0)
keybd_event(9,0,2,0)
CASE keyuparrow! //按光标上键左移焦点
keybd_event(16,0,0,0)
keybd_event(9,0,0,0)
keybd_event(16,0,2,0)
keybd_event(9,0,2,0)
CASE keyenter! //回车键触发焦点处控件
cb_control=GETFOCUS()
IF TypeOf(cb_control)=COMMANDBUTTON! THEN
Triggerevent(cb_control,clicked!)
END IF
END CHOOSE



2: Re:我是新手,请教一个问题,命令按钮怎么不?
lchzh 地说:
在大作《Re: 我是新手,请教一个问题,命令按钮怎么不能用?》中提到:
作为新手,看书要仔细,你的问题很简单:设置CommandButton的Defult属性为True,那么在你按 Enter键时就会促发此按钮的Clicked事件,Cancel属性对应Esc键。或自定义:在按钮的文本前加入"&*"--'*'代表任意字母,如要定义按钮的快捷键为Alt+A,则在其文本中加入"&A"即可.

3:Re: Re: 我是新手,请教一个问题,命令按钮怎么不?
phytie phytie@sina.com 地说:

这样是不行的,default只能用于一个按钮,一般是用于messagebox中,cancel也是同理,'&*'--'*'也不是关键
最简单就是在按钮的事件中加入一个用户自定义的事件keydown,event code 为pmb_keydown
这样只要
在此事件中判断是不是有enter键就行了
//code
if key=keyenter! then
//your clicked code
end if

4:Re: 我是新手,请教一个问题,命令按钮怎么不能用?
来自西安的
阿若 yangruodong@future.com.cn 地说:

在WINDOW画板中,选择希望响应ENTER键的BUTTON,选择菜单DECLARE/USER EVENTS,新增系统事件EVENT NAME:Keydown,EVENT ID:pdm_keydown
然后进入BUTTON的SCRIPT画板,选择KEYDOWN事件写入代码
if key = KeyEnter! then
// Add Your Scripts
end if


Tags:

作者:佚名
分享到: 微信 更多