Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2561|回复: 5

设置焦点失败的问题。

[复制链接]
发表于 2013-9-9 15:42 | 显示全部楼层 |阅读模式
本帖最后由 hktkzyz 于 2013-10-23 10:30 编辑

我想在TextBox4的exit事件后,如果是正整数,则使ScrollBar1的值产生变化,然后再将焦点返回给textbox4,但是运行后不能返回到textbox4,如设焦点到无关的textbox5则可以,请问:
1、为什么?
2、应该怎么做?(不要设cancel=true,因为我还想通过变化ScrollBar1的值来相应改变textbox4的值)

另外,如果我在textbox4中输入的不是正整数,我设置了弹出msgbox“请输入0至100内的正整数!”,我使用了cancel=true,这时我点x号关闭窗口时,还会再弹出msgbox“请输入0至100内的正整数!”,
我知道是因为点x号也会响应textbox4的exit事件,那请问

3、如何避免这种情况?(也就是说当点x号时,不是相当于unload me,而是相当于end,该如何做?)

问题.zip

15.36 KB, 下载次数: 5

发表于 2013-9-9 15:53 | 显示全部楼层
回复

使用道具 举报

发表于 2013-9-9 15:53 | 显示全部楼层
回复

使用道具 举报

发表于 2013-9-9 16:24 | 显示全部楼层
TextBox的获取焦点属性对在自身事件中不起作用。
不太明白你什么意思,我小动一下,你看看是不是满足你的要求。

问题.zip

13.78 KB, 下载次数: 3

回复

使用道具 举报

 楼主| 发表于 2013-9-10 08:41 | 显示全部楼层
感谢4楼老师指出问题所在,我在另一个贴子中也看到兰版说“TextBox的获取焦点属性对在自身事件中不起作用。”但是你的改动我动行了一下,和原来的一样啊,我也在ScrollBar1_Change里设置过获取焦点,是不成功的。因为ScrollBar1_Change也是在textbox4的exit中激活的。
继续期待
回复

使用道具 举报

 楼主| 发表于 2013-9-11 13:24 | 显示全部楼层
经过别人的帮助已解决,跟大家分享一下。
1、可能因为TextBox的获取焦点属性对在自身事件中不起作用。
2、设一个全局变量,另加一个判断来设置cancel=true:
     dim s
     ............
     If TextBox4.Value <> s Then Cancel = True: s = TextBox4.Value
     .............
     以此达到当textbox4不发生变化时,焦点可转移,而发生变化时,则阻止转移。
3、在UserForm_QueryClose事件中,设当closemode值=0时,end。
    If CloseMode = 0 Then End
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 17:04 , Processed in 0.513787 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表