文本框的keypress事件的问题 15

在窗体上画一个文本框,其名称为Text1,然后编写如下事件过程:PrivateSubText1_KeyPress(KeyAsciiAsInteger)DimstrAsSt... 在窗体上画一个文本框,其名称为Text1,然后编写如下事件过程: Private Sub Text1_KeyPress(KeyAscii As Integer) Dim strAs String,n As Integer Str=UCase(Chr(KeyAscii) n=Len(str) Text1=String(n,str) End Sub 程序运行后,如果在键盘上输入单字母“k”,则在文本框Text1中显示的内容为( )。
A.kk B.kK C.KK D.Kk
请高手指教,为什么text1中有两个字符?
展开
 我来答
三心全乱
2014-04-12 · TA获得超过6158个赞
知道小有建树答主
回答量:518
采纳率:100%
帮助的人:221万
展开全部
如果这是考试题,那只能说,又是一道坑爹的题,要么就是高级高级高高级程序员的考试题,小屌纵横VB多年,不实际调试一下,还真不知道这题怎么回事。
用断点自己调试一下就知道了,首先, Str=UCase(Chr(KeyAscii))就是把按下的字符变成大写的,你按了k,就得到一个K,然后n = len(str),是字符长度,n是1,Text1=String(n,str),就是在text里面放上1个str,str就是前面得到的大写K了。好了,现在text1里有一个大写K了,那么怎么会有第二个呢?第二个就是你自己按键按下去的那个小写k。
实际调试可以知道,按下按键后,先发生了这个keypress事件,所以先有了大写K,然后,由于你按下的小写k还是有效的,于是,小写k也放上去。由于Text1 = String(n,str) 这个赋值过程并没有改变Text1的输入光标位置,所以默认的当前输入位置还是在开始的位置,所以会在前面显示一个小写k,就是结果就是 kK
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式