问:在大作《我是新手,请教一个问题,命令按钮怎么不能用键盘?》中提到: 请问:我在设计登陆窗口时,用命令按钮,但只能用鼠标驱动,键盘的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
|