明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6685|回复: 15

[界面] 输入法切换

  [复制链接]
发表于 2010-12-20 14:01:56 | 显示全部楼层 |阅读模式
传一个我做好的,我只用“搜狗”,所以只能切换“搜狗”,需要别的自己写吧。命令”QH“,可以把它加在启动自动运行。



输入法切换的简单方法!!编辑文字时切换中文输入法,编辑文字结束时切换英文输入法

  1. If CodName = "TEXT" Or CodName = "DDEDIT" Or CodName = "MTEXT" Or CodName = "MTEDIT" Then
  2.     If InputLanguage.CurrentInputLanguage.LayoutName <> "中文 (简体) - 搜狗拼音输入法" Then
  3.         SetIme("中文 (简体) - 搜狗拼音输入法")
  4.     End If
  5. Else
  6.     If InputLanguage.CurrentInputLanguage.LayoutName <> "简体中文 - 美式键盘" Then
  7.         SetIme("简体中文 - 美式键盘")
  8.     End If
  9. End If

  10. Private Function SetIme(ByVal languageName As String) As Boolean
  11.     Try
  12.         '循环所有输入法
  13.         For Each l As InputLanguage In InputLanguage.InstalledInputLanguages
  14.             If (l.LayoutName.IndexOf(languageName) >= 0) Then
  15.                 '设置输入法
  16.                 InputLanguage.CurrentInputLanguage = l
  17.                 Return True
  18.             End If
  19.         Next
  20.         Return False
  21.     Catch ex As Exception
  22.         Return False
  23.     End Try
  24. End Function


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 2明经币 +1 金钱 +11 收起 理由
xiaxiang + 5 好东西,感谢分享!
雪山飞狐_lzh + 1 + 6 传个简单的工程说明下吧

查看全部评分

 楼主| 发表于 2010-12-28 10:49:02 | 显示全部楼层
加个窗体,弄个Timer控件,combobox控件,几个checkbox控件,再写个ini文件,这就是个完整的切换设置程序了
回复 支持 0 反对 1

使用道具 举报

发表于 2010-12-20 19:58:13 | 显示全部楼层
可以详细的说明下使用环境?
还有感觉把If语句放到函数里更好?
 楼主| 发表于 2010-12-28 10:41:44 | 显示全部楼层
在cad使用文字编辑时,需要经常切换输入法,用它就可以自动切换了。
放到Timer控件里面。
  1. private Sub Timer1_Tick(BuVal sender As System.Object,ByVal e As System.eventArgs) Handles Timer1.Tick
  2. If CodName = "TEXT" Or CodName = "DDEDIT" Or CodName = "MTEXT" Or CodName = "MTEDIT" Then
  3. If InputLanguage.CurrentInputLanguage.LayoutName <> "中文 (简体) - 搜狗拼音输入法" Then
  4. SetIme("中文 (简体) - 搜狗拼音输入法")
  5. End If
  6. Else
  7. If InputLanguage.CurrentInputLanguage.LayoutName <> "简体中文 - 美式键盘" Then
  8. SetIme("简体中文 - 美式键盘")
  9. End If
  10. End If
  11. End Sub

发表于 2010-12-28 10:45:13 | 显示全部楼层
很有用的东东
能给出完整的程序码 和详细使用方法吗?
谢谢
 楼主| 发表于 2010-12-28 11:08:23 | 显示全部楼层
本帖最后由 zlg258369 于 2010-12-28 14:41 编辑
glowz 发表于 2010-12-28 10:45
很有用的东东
能给出完整的程序码 和详细使用方法吗?
谢谢


窗体部分:

  1. private Sub Timer1_Tick(BuVal sender As System.Object,ByVal e As System.eventArgs) Handles Timer1.Tick

  2. on error resume next

  3. if autodesk.autocad.applicationservices.application.documentmanager.count=0 then

  4.     timer1.stop()

  5. end if

  6. ‘漏了一句
  7. dim codname as string = autodesk.autocad.applicationservices.application.acadapplication.activedocument.getvariable("cmdnames")

  8. If CodName = "TEXT" Or CodName = "DDEDIT" Or CodName = "MTEXT" Or CodName = "MTEDIT" Then



  9. If InputLanguage.CurrentInputLanguage.LayoutName <> "中文 (简体) - 搜狗拼音输入法" Then



  10. SetIme("中文 (简体) - 搜狗拼音输入法")



  11. End If



  12. Else



  13. If InputLanguage.CurrentInputLanguage.LayoutName <> "简体中文 - 美式键盘" Then



  14. SetIme("简体中文 - 美式键盘")



  15. End If



  16. End If

  17. endSub
类部分:
  1. <commandmethod("QH")> _
  2.     public sub srf_qh()

  3.     if autodesk.autocad.applicationservices.application.documentmanager.count=1 then

  4. form.timer1.start()

  5. end if

  6. end sub
复制代码
cad命令判断时改为变量,输入法中文改为变量,就能进行设置了。

再加上获取输入法的:(放到button里)
  1. for each l as inputlanguage in inputlanguage.installedinputlanguages

  2. combobox1.items.add(l.layoutname.tostring)

  3. next
复制代码
 楼主| 发表于 2010-12-28 11:13:18 | 显示全部楼层
还不太熟,重复了
发表于 2011-1-3 11:11:26 | 显示全部楼层
加载使用,出现异常
 楼主| 发表于 2011-1-4 15:18:54 | 显示全部楼层
回复 azbd 的帖子

cad2007的--------
发表于 2011-1-6 17:49:01 | 显示全部楼层
感谢发布源码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 06:56 , Processed in 0.158501 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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