关于切换程序输入法变成全角。

一.控件输入法全角/半角解决方案 
  直接把控件的imemode = imdemode.kankanhalf,强制转化成半角就OK。

  二.窗体输入法全角/半角解决方案 
  using   System;   
  using   System.Collections.Generic;   
  using   System.ComponentModel;   
  using   System.Data;   
  using   System.Drawing;   
  using   System.Text;   
  using   System.Windows.Forms;   
  using   System.Runtime.InteropServices;   
    
  namespace   Lqjt   
  {   
          public   partial   class   ImeForm   :   Form   
          {   
                  public   ImeForm()   
                  {   
                          InitializeComponent();   
                  }   
                  //声明一些API函数   
                  [DllImport("imm32.dll")]   
                  public   static   extern   IntPtr   ImmGetContext(IntPtr   hwnd);   
                  [DllImport("imm32.dll")]   
                  public   static   extern   bool   ImmGetOpenStatus(IntPtr   himc);   
                  [DllImport("imm32.dll")]   
                  public   static   extern   bool   ImmSetOpenStatus(IntPtr   himc,   bool   b);   
                  [DllImport("imm32.dll")]   
                  public   static   extern   bool   ImmGetConversionStatus(IntPtr   himc,   ref   int   lpdw,   ref   int   lpdw2);   
                  [DllImport("imm32.dll")]   
                  public   static   extern   int   ImmSimulateHotKey(IntPtr   hwnd,   int   lngHotkey);   
                  private   const   int   IME_CMODE_FULLSHAPE   =   0x8;   
                  private   const   int   IME_CHOTKEY_SHAPE_TOGGLE   =   0x11;   
                  protected   override   void   OnActivated(EventArgs   e)   
                  {   
                          base.OnActivated(e);   
                          IntPtr   HIme   =   ImmGetContext(this.Handle);   
                          if   (ImmGetOpenStatus(HIme))     //如果输入法处于打开状态   
                          {   
                                  int   iMode   =   0;   
                                  int   iSentence   =   0;   
                                  bool   bSuccess   =   ImmGetConversionStatus(HIme,   ref   iMode,   ref   iSentence);     //检索输入法信息   
                                  if   (bSuccess)   
                                  {   
                                          if   ((iMode   &   IME_CMODE_FULLSHAPE)   >   0)       //如果是全角   
                                                  ImmSimulateHotKey(this.Handle,   IME_CHOTKEY_SHAPE_TOGGLE);     //转换成半角   
                                  }   
    
                          }   
                  }   
          }//form   
  } 

 C# Textbox的ImeMode取值对中文输入法的影响

     
取值五笔加加微软拼音3.0搜狗拼音说明
NoControl首次调出后按一次ctrl+space才能正确使用 中西标点或全半角字符继承上次设置调出后默认为英文输入状态  调出后默认为西文标点 英文输入时为半角字符调出后默认为英文输入状态  调出后默认为西文标点 英文输入时为半角字符不建议使用
On调出后默认为汉字输入状态  中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置 
Off 调出后默认为汉字输入状态  中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置 
Disable调出后默认为英文输入状态中西标点或全半角字符继承上次设置调出后默认为英文输入状态 调出后默认为西文标点 英文输入时为半角字符调出后默认为英文输入状态调出后默认为西文标点 英文输入时为半角字符推荐使用,适合于密码输入
AlphaFull调出后默认为汉字输入状态  中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置 
Alpha调出后默认为汉字输入状态  中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置 
HangulFull调出后默认为汉字输入状态  中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置 
Hangul调出后默认为汉字输入状态  中西标点或全半角字符继承上次设置调出后默认为汉字输入状态  调出后默认为西文标点 英文输入时为半角字符调出后默认为汉字输入状态  调出后默认为西文标点 英文输入时为半角字符 
Close 首次调出后按一次ctrl+space才能正确使用 中西标点或全半角字符继承上次设置调出后默认为汉字输入状态  调出后默认为西文标点 英文输入时为半角字符调出后默认为汉字输入状态  调出后默认为西文标点 英文输入时为半角字

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值