现在的位置: 首页 > 综合 > 正文

.net framework 2.0 winform 半角全角问题全面解决

2013年03月01日 ⁄ 综合 ⁄ 共 1489字 ⁄ 字号 评论关闭

http://www.cnblogs.com/371448009/archive/2009/03/21/1418541.html

 

首先打补丁,然后在winform的imeMode = onHalf。如果不打补丁,会提示这个枚举不存在。

 

http://www.cnblogs.com/forrestsun/articles/810739.html
http://www.cnblogs.com/name-lh/archive/2006/04/13/374337.html

using System;
 2using System.Runtime.InteropServices;
 3
 4namespace MyDemo
 5
 6    public static class clsIme
 7    {
 8        //声明一些API函数
 9        [DllImport("imm32.dll")]
10        public static extern IntPtr ImmGetContext(IntPtr hwnd);
11        [DllImport("imm32.dll")]
12        public static extern bool ImmGetOpenStatus(IntPtr himc);
13        [DllImport("imm32.dll")]
14        public static extern bool ImmSetOpenStatus(IntPtr himc, bool b);
15        [DllImport("imm32.dll")]
16        public static extern bool ImmGetConversionStatus(IntPtr himc, ref int lpdw, ref int lpdw2);
17        [DllImport("imm32.dll")]
18        public static extern int ImmSimulateHotKey(IntPtr hwnd, int lngHotkey);
19        public const int IME_CMODE_FULLSHAPE = 0x8;
20        public const int IME_CHOTKEY_SHAPE_TOGGLE = 0x11;
21        //重载SetIme,传入Form
22        public static void SetIme(Form frm)
23        {
24            frm.Paint += new PaintEventHandler(frm_Paint);
25            ChangeAllControl(frm);
26        }

27        //重载SetIme,传入Control
28        public static void SetIme(Control ctl)
29        {
30            ChangeAllControl(ctl);
31        }

32        //重载SetIme,传入对象句柄
33        public static void SetIme(IntPtr Handel)
34        {
35            ChangeControlIme(Handel);

抱歉!评论已关闭.