以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 建议列属性中中文输入,设置为中文时,增加半角全角选项! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24306) |
-- 作者:lyzhuo -- 发布时间:2012/10/10 11:11:00 -- 建议列属性中中文输入,设置为中文时,增加半角全角选项! 某一列,在中文设置时,如中文输入设置为Default时,当切换到中文输入时,中文开始打不上,得先输入英文,再删除以后才能正常输入中文, 如果把中文输入设置为True时,切换到中文,但是是全角输入数字时,都变成了全角,还得自己再调整输入法。 是否有一个命令可以自动把输入法改成半角呢? 或都是增加一个选项可以控制输入半角或全角? |
-- 作者:程兴刚 -- 发布时间:2012/10/10 11:13:00 -- 中文没有半角,您这样也许会让贺老师很为难,估计微软都没有给这个方便! |
-- 作者:lyzhuo -- 发布时间:2012/10/10 11:23:00 -- 但这是一个很实际的问题,能不能有个命令,可以自行设置这样的问题呢? |
-- 作者:lin_hailun -- 发布时间:2012/10/10 14:31:00 -- 输入法全角和半角切换的快捷键是Shift+Space。 即 Shift+空格 [此贴子已经被作者于2012-10-10 14:31:13编辑过]
|
-- 作者:lyzhuo -- 发布时间:2012/10/11 8:39:00 -- 首先谢谢了,我知道这个快捷键,但是按了这个快捷键之后,切换到另一列还是得按快捷键, 再新增一行,这个列还得按快捷键,输入的内容多了,很是不方便。 现在在考虑,如是从设置上无法完成,只有写一段代码来转换了。 |
-- 作者:程兴刚 -- 发布时间:2012/10/11 9:04:00 -- 看这里:
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=118&replyID=&skin=1 |
-- 作者:lyzhuo -- 发布时间:2012/10/11 10:14:00 -- 谢谢程版主,但你发的这个补丁是针对微软的输入法吗?我用的是QQ五笔,刚安装一下安装不上。 不知道对其他的输入法有没有效果呀? |
-- 作者:程兴刚 -- 发布时间:2012/10/11 11:40:00 -- 很多人的输入法问题都是用他解决了的,win 7 不需要安装他,是微软的BUG,总是返回到全角状态,升级您的.net 2.0到更高版本,或许可以解决。 |
-- 作者:lin_hailun -- 发布时间:2012/10/11 12:03:00 -- 在网上拷了一段模拟按键的代码,模拟按下Shift+空格,放到事件里去可用。 Dim typeForKeywords As Type = Type.[Gettype]("System.Windows.Forms.SendKeys+KeywordVk[], System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") Dim typeForKeywordItem As Type = Type.[Gettype]("System.Windows.Forms.SendKeys+KeywordVk, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") Dim objNewKey As Object = Activator.CreateInstance(typeForKeywordItem, "SPACE", &H20) Dim typeForSendKeys As Type = Gettype(SendKeys) Dim fieldForkeywords As System.Reflection.FieldInfo = typeForSendKeys.GetField("keywords", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.GetField Or System.Reflection.BindingFlags.[Static]) Dim objKeys As Object = fieldForkeywords.GetValue(Nothing) Dim typeForlistForKeyword As Type = Type.[Gettype]("System.Collections.Generic.List`1[[System.Windows.Forms.SendKeys+KeywordVk, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") Dim objForTmpKeyWords As Object = Activator.CreateInstance(typeForlistForKeyword) Dim mi As System.Reflection.MethodInfo = typeForlistForKeyword.GetMethod("Add") For Each var As Object In DirectCast(objKeys, Array) \'list.Add(var); mi.Invoke(objForTmpKeyWords, New Object() {var}) Next \'list.Add(key); mi.Invoke(objForTmpKeyWords, New Object() {objNewKey}) mi = typeForlistForKeyword.GetMethod("ToArray") Dim objArray As Object = mi.Invoke(objForTmpKeyWords, Nothing) fieldForkeywords.SetValue(Nothing, objArray) SendKeys.Send("+{Space}") [此贴子已经被作者于2012-10-11 12:03:52编辑过]
|
-- 作者:blackzhu -- 发布时间:2012/10/11 14:34:00 -- 输入法可以设置的,你设置一下就可以了. |