如何控制输入法的半全角 C#的winform程序,文本框输入数字时要求只能接受半角的数字可是每次输入法到那总是会变成全角,然后进行半全角切换,很是麻烦,请问有没有什么好的方法或者哪里可以进行设置,可以让每次到输入框时输入法总是半角? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 顶上这位一下.ImeMode属性,你查一下资料.和全解半解没有关系. 参考:http://topic.csdn.net/u/20090218/12/1c2be55b-b894-4fc7-b99d-dd91f929dbc3.html建议下个输入法补丁安装一下:http://download.csdn.net/source/320345 Control.ImeMode 属性:获取或设置控件的输入法编辑器 (IME) 模式。 由于窗体属性继承关系,如果WINFORM窗体中大部分需要设置为输入法有效状态,可以设置为FORM的ImeMode属性为On.如果需要某些TextBox为输入法有效,则使用ImeMode.On如果需要设置整个窗体的输入法全部为半角 [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); } } } c# + 3dMax 如何用做虚拟现实? C# WINFORM中WebBrowser中DocumentCompleted事件 问个简单而又复杂的问题、 A程序调用B程序 求助 问下大家都用什么插件 通过窗口的句柄如何对窗口的按钮进行操作? 关于往数据库中插入一条记录同时返回该记录ID的问题 [再次提问]关于如何隐藏dos窗口的问题? DataTable.Columns[x]有没有用于整体对比的方法? datagridview 列排列问题 网络连接
ImeMode属性,你查一下资料.和全解半解没有关系.
http://topic.csdn.net/u/20090218/12/1c2be55b-b894-4fc7-b99d-dd91f929dbc3.html建议下个输入法补丁安装一下:
http://download.csdn.net/source/320345
由于窗体属性继承关系,如果WINFORM窗体中大部分需要设置为输入法有效状态,可以设置为FORM的ImeMode属性为On.
如果需要某些TextBox为输入法有效,则使用ImeMode.On
如果需要设置整个窗体的输入法全部为半角
[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);
} }
}