以文本方式查看主题

-  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
--  
输入法可以设置的,你设置一下就可以了.