11.使用(KeyCode=vbKeyF3) and (Shift=vbCtrlMask)或者(KeyCode=114) and (Shift=2)表达式,可以检测Ctrl和F3是否同时按下,F3的键盘扫描码是114。
12.用户按下并且释放一个会产生ASCII码的键时,触发KeyPress事件;用户按下键盘上任意一个键时,触发KeyDown事件。KeyDown与KeyPress事件的主要区别有:
(1)从时间上来说,按下键盘上的一个键,立即触发KeyDown事件,但此时没有引发KeyPress事件。只有在释放该键时触发KeyPress事件。
(2)用户按下键盘上的任一键,就会在相应对象引发KeyDown事件,但是并不是按下和释放键盘上的任意一个键都会引发KeyPress事件,KeyPress事件只对会产生ASCII码的按键有反映,包括数字、大小写字母、Enter、Backspace、ESC、Tab等。对于如方向键这样的不会产生ASCII码的按键,KeyPress事件不会被触发。
13.KeyPress事件发生了一次,KeyAscii参数值是36,也就是“$”字符的ASCII码为36。因为KeyPress事件是在输入一个ASCII码字符时发生的事件,尽管在输入“$”字符时按了两个键,但是输入了一个字符,所以KeyPress事件发生了一次。
14.如果窗体上只有一个文本框,则在文本框或窗体的KeyPress事件进行数据过滤都是很好的方法;如果有多个文本框,则应在窗体的KeyPress事件中进行处理,好处是只需一个KeyPress事件过程,不必为每一个文本框都编写事件过程。
文本框的KeyPress事件过程中:
Sub Text1_KeyPress(KeyAscii as integer)
if KeyAscii<Asc("0") or KeyAscii>Asc("9") then KeyAscii=0
End Sub
窗体的KeyPress事件过程中:
将窗体的KeyPreview属性设置为True后才有效
Sub Form_KeyPress(KeyAscii as integer)
if KeyAscii<Asc("0") or KeyAscii>Asc("9") then KeyAscii=0
End Sub
15.窗体的KeyPreview属性决定是否触发窗体的KeyPress、KeyUp和KeyDown事件。如果它为True,则当焦点在某个控件上进行键盘操作时,首先触发窗体键盘事件,然后发生控件的键盘事件。
当窗体的KeyPreview属性为True时,从键盘输入的数据经过窗体的KeyPress事件过程,再经过文本框的KeyPress事件过程,最终文本框。如果在KeyPress事件过程中修改了KeyAscii参数,则会影响文本框接收的数据。
16.如果在KeyDown事件中将KeyCode设置为0,KeyPress的KeyAscii参数不会受影响,如果输入对象是文本框,那文本框的内容也不会受影响。
17.键盘扫描代码是对键盘上按键的编码,它告诉事件过程用户所操作的物理键。也就是说,大写字母和小写字母使用同一个键,它们的KeyCode相同。对于有上档字符和下档字符的键,其KeyCode也是相同的,
vb试题及答案83_vb答案
为下档字符的ASCII码。
18.普通拖放是用鼠标将控件等对象从一个地方拖动到另一个地方再放下,一般来说,它拖放的对象是控件;而OLE拖放是将数据从一个地方或应用程序中移到另一个控件或应用程序中,一般来说,它拖放的对象不是整个控件,而是控件中的项目或数据。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-22730-31.html
现在是剩女多好吧