急求关于vb中keypress与change事件的讲解。
PrivateSubText1_KeyPress(KeyAsciiAsInteger)Text1.Text="P"EndSubPrivateSubText2_change...
Private Sub Text1_KeyPress(KeyAscii As Integer)
Text1.Text = "P"
End Sub
Private Sub Text2_change()
Text2.Text = "P"
End Sub
程序运行后,如按P键,为何text1中出现pP。而text2中只会出P。 展开
Text1.Text = "P"
End Sub
Private Sub Text2_change()
Text2.Text = "P"
End Sub
程序运行后,如按P键,为何text1中出现pP。而text2中只会出P。 展开
展开全部
keypress执行时text1的文字显示处理还没有开始,在这时给Text1复制了P。
当keypress事件处理完毕,处理text1的change事件时,系统才在text1的第一个位置插入一个p。
因此结果为pP。
第二个事件,实在text2的内容被系统改为p之后,才执行change事件,因此最后的结果是P替换了p变成只有P了。
textbox是在keypress事件之后将键入文字放入文本框的,因此出现了上述差异。
提示,这两个例子用于研究可以,请不要用于实践。他们干扰了系统的处理,会导致各种问题。
如果要处理按键,请在keydown和keyup中处理。
当keypress事件处理完毕,处理text1的change事件时,系统才在text1的第一个位置插入一个p。
因此结果为pP。
第二个事件,实在text2的内容被系统改为p之后,才执行change事件,因此最后的结果是P替换了p变成只有P了。
textbox是在keypress事件之后将键入文字放入文本框的,因此出现了上述差异。
提示,这两个例子用于研究可以,请不要用于实践。他们干扰了系统的处理,会导致各种问题。
如果要处理按键,请在keydown和keyup中处理。
展开全部
你按P,就算你不写任何代码,系统也有一个操作:就是在文本框中插入"p"
keypress在系统插入p之前被执行,故text1.text="P"再加上你输入的一个p,所以是"pP"
text2的change是系统插入p之后被执行,所以覆盖了原来你插入的"p",变成了"P"
keypress在系统插入p之前被执行,故text1.text="P"再加上你输入的一个p,所以是"pP"
text2的change是系统插入p之后被执行,所以覆盖了原来你插入的"p",变成了"P"
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
keypress在按键显示p之前产生,故text1.text="p"还有你输入的一个p,所以有两个
text2的change是你按键之后,所以只会有一个
text2的change是你按键之后,所以只会有一个
追问
但赋值语句text1=P和text2=P,不是应该把text1和text2的文本内容都变为P了吗,不应该只显示P吗,为什么text1中多显示了按的那个p键
追答
你每个按键是清楚了原文本框之后按的吗?按键是追加在光标之后的,也就相当于text1.text = text1.text & chr(keyascii)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询