VBA textbox change事件的疑问

PrivateSubcmd2_Click()Text1.Text="studingallVB!"Text1.SelStart=8Text1.SelLength=2MsgB... Private Sub cmd2_Click()
Text1.Text = "studing all VB!"
Text1.SelStart = 8
Text1.SelLength = 2
MsgBox Text1.SelText
End Sub

Private Sub Text1_Change()
Text1.Text = "studing all VB!"
Text1.SelStart = 8
Text1.SelLength = 1
MsgBox Text1.SelText
End Sub
我在TEXT BOX里键入一个“a"或者其他一个什么字母的时候,为什么一个对话框里写着“a“ 的对话框会出现两次!?而,我按那个CMD1就不会出现这样的事情!求解!~
展开
 我来答
luomandick
2010-02-11 · TA获得超过1175个赞
知道小有建树答主
回答量:902
采纳率:0%
帮助的人:715万
展开全部
因为你按键盘是触动了一次text1_change,然后Text1.Text = "studing all VB!"这相当于又触发了一次text1_change。
按cmd也会出现两次我试了一下,一个是“a”另一个对话框写着"al"。正好对应的,第一次先触发text1_change,第二次才是MsgBox Text1.SelText
swx1995
2010-02-11 · TA获得超过2696个赞
知道大有可为答主
回答量:1477
采纳率:0%
帮助的人:2358万
展开全部
Text_Change是当内容改变时候触发。
无论程序改变还是用户输入,最后都是内容改变,都会引发Text_Change。

如果不想让程序设置的改变被处理,建议设置一个全局变量(如x)

程序:

Text1_Change:
if x=true then
x=false
else
x = true
Text1.Text = "changed!"
end if
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冷以筠gS
2010-02-11 · TA获得超过1650个赞
知道小有建树答主
回答量:996
采纳率:0%
帮助的人:738万
展开全部
这是一个焦点的问题,你在CMD1事件的代码中加上一句text1.setfouce应该就可以了的。
没试过,呵呵。估计的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式