关于切换程序输入法变成全角。
2015-07-17 17:06
288 查看
一.控件输入法全角/半角解决方案
直接把控件的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取值对中文输入法的影响
直接把控件的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才能正确使用 中西标点或全半角字符继承上次设置 | 调出后默认为汉字输入状态 调出后默认为西文标点 英文输入时为半角字符 | 调出后默认为汉字输入状态 调出后默认为西文标点 英文输入时为半角字 |
相关文章推荐
- jquery实现table列合并
- Android清除本地数据缓存代码
- mysqlmysql_upgrade 报错
- Android通过构造函数传递数据
- 分布式系统的事务处理
- BZOJ 1022 [SHOI2008]小约翰的游戏John
- springMVC中使用POI方式导出excel至客户端、服务器实例
- 第一范式,第二范式,第三范式
- (转)IOC框架Ninject实践总结
- 详细解析Java中抽象类和接口的区别
- 测试使用cobbler服务
- Android4.4, extents PreferenceActivity, Runtime Exception 解决办法。
- cortex m0 lpc1114_GPIO引脚寄存器综述
- 正则表达式 验证日期合法性(包括匹配闰年)
- android 之加载图片(二)
- STM32学习笔记(二) 基于STM32-GPIO的流水灯实现
- UIViewContentMode各类型效果
- Vanya and Cubes
- 【转】以太网的帧
- MyEclpise_提示过期要求注册