| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3503 人关注过本帖, 1 人收藏
标题:帮我看看这段代码问题出在哪,一个登录窗体
只看楼主 加入收藏
wjq09
Rank: 2
等 级:论坛游民
帖 子:69
专家分:20
注 册:2011-1-2
收藏
得分:0 
回复 6楼 初始元灵
不是啊,默认是美式键盘,只要运行程序弹出登录成功对话框后就自己切换到中文输入法,醉了

[此贴子已经被作者于2016-11-2 09:55编辑过]

2016-11-02 09:32
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
回复 11楼 wjq09
看来这个代码是^C来的。
如果程序运行后自动切换到中文输入法,那可以肯定是程序自己做了这个操作,有三种方式完成输入法切换,一是通过sendkeys发相关切换键,另一种是通过api强行切换到中文输入法,还有一种是通过设置获得焦点的控件IMEMode属性为on切换,最简单的是第三种方式,不需要代码即可完成。
2016-11-02 10:10
wjq09
Rank: 2
等 级:论坛游民
帖 子:69
专家分:20
注 册:2011-1-2
收藏
得分:0 
回复 12楼 xzlxzlxzl
窗体是VB工程菜单里添加的登录窗体,其它代码是自己写的,就是显示登陆成功后打开主窗体前切换的,我想原因就在这个窗体里
我看了看VB自己生成的登录窗口里txtPassword文本框的IMEMode属性值是3,但我修改不了它的属性值,这是怎么回事
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-11-3 08:42编辑过]

2016-11-02 18:38
wjq09
Rank: 2
等 级:论坛游民
帖 子:69
专家分:20
注 册:2011-1-2
收藏
得分:0 
回复 10楼 ZHRXJR
原来是这样,谢谢!
2016-11-02 18:40
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
测试了一下,凡设置了 PasswordChar 属性时,
IMEMode 自动设置为3,并且不能修改。

3 IME 被禁止。该模式类似于 IMEMode = 2,区别仅在于数值 2 没有禁止 IME。在本设置下,用户不能够通过键盘将 IME 打开,而且 IME 浮动窗口被隐藏。该设置仅对日文 IME 有效。
这种模式下,不能输入中文,很强大。

我测试时,这行还会报错:拒绝的权限
         SendKeys "{Home}+{End}"



授人于鱼,不如授人于渔
早已停用QQ了
2016-11-03 12:38
wjq09
Rank: 2
等 级:论坛游民
帖 子:69
专家分:20
注 册:2011-1-2
收藏
得分:0 
回复 15楼 风吹过b
那我这输入法自己切换的问题还有办法解决吗
2016-11-03 14:25
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
你说登陆成功后启动主窗口时切换,我觉得可能还是主窗口造成的,登陆窗体就那么两个输入控件,很容易排除。如果你打包整个工程文件发上来让大神们分析的话,应该很快找到原因,如果自己分析的话,建议用排除法:
1,排除系统键盘的默认设置就是中文,应该是“简体中文--美式键盘”
2,启动窗体设置为主窗体,绕开登陆窗体,排除登陆窗体切换的可能性
3,清除所有代码,排除代码运行切换的可能性
4,一个个清除可输入控件,排除控件自动切换的可能性

经上述操作,应该能找到问题症结所在。
2016-11-03 15:28
wjq09
Rank: 2
等 级:论坛游民
帖 子:69
专家分:20
注 册:2011-1-2
收藏
得分:0 
回复 17楼 xzlxzlxzl
我发现我把光标移到登录窗体的密码输入文本框那输入法就切换了,应该就是密码输入框造成的,可文本框设置了PasswordChar属性,IMEMode属性无法修改
2016-11-03 15:59
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
如果当前状态是中文输入法的情况下,进入密码框应该是自动切换到英文状态的,但不切换输入法。你可以将密码文本框的"Password"属性清空,这时就可以修改IMEMode属性了。
2016-11-03 16:07
wjq09
Rank: 2
等 级:论坛游民
帖 子:69
专家分:20
注 册:2011-1-2
收藏
得分:0 
回复 19楼 xzlxzlxzl
这个我知道,我试着把PasswordChar属性去掉并把IMEMode属性设为0,这回运行时光标移动到文本框不切输入法了,不过去掉PasswordChar属性就无法起到密码框的输入效果了,现在这个问题是不是没有两全的办法了,

[此贴子已经被作者于2016-11-3 17:02编辑过]

2016-11-03 17:00
快速回复:帮我看看这段代码问题出在哪,一个登录窗体
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026704 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved