方法如下:
public class InputMethod {
public const int GW_Child = 5;
public const uint SetInputMode = 0x00DE;
public const uint Spell = 0;
public const uint T9 = 1;
public const uint Numbers = 2;
public const uint Text = 3;
[DllImport("coredll.dll")]
public static extern IntPtr GetFocus();
[DllImport("coredll.dll")]
public static extern IntPtr GetWindow(IntPtr hWnd, uint uCmd);
[DllImport("coredll.dll")]
public static extern int SendMessage(IntPtr hWnd, uint Message, uint wParam, uint lParam);
public static void SetInputMode(Control ctrl, unit mode) {
ctrl.Capture = true;
IntPtr h = GetCapture();
ctrl.Capture = false;
IntPtr handle = GetWindow(h, GW_Child);
//设置输入法
SendMessage(handle, EM_SetInputMode, 0, mode);
}
}
//在textbox的GotFocus事件中实现:
//private void textBox_GotFocus(object sender, System.EventArgs e) {
// InputMethod.SetInputMode(this.textBox,InputMethod.Numbers);
//}
public const int GW_Child = 5;
public const uint SetInputMode = 0x00DE;
public const uint Spell = 0;
public const uint T9 = 1;
public const uint Numbers = 2;
public const uint Text = 3;
[DllImport("coredll.dll")]
public static extern IntPtr GetFocus();
[DllImport("coredll.dll")]
public static extern IntPtr GetWindow(IntPtr hWnd, uint uCmd);
[DllImport("coredll.dll")]
public static extern int SendMessage(IntPtr hWnd, uint Message, uint wParam, uint lParam);
public static void SetInputMode(Control ctrl, unit mode) {
ctrl.Capture = true;
IntPtr h = GetCapture();
ctrl.Capture = false;
IntPtr handle = GetWindow(h, GW_Child);
//设置输入法
SendMessage(handle, EM_SetInputMode, 0, mode);
}
}
//在textbox的GotFocus事件中实现:
//private void textBox_GotFocus(object sender, System.EventArgs e) {
// InputMethod.SetInputMode(this.textBox,InputMethod.Numbers);
//}