您的位置:首页 > 其它

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

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取值对中文输入法的影响

取值五笔加加微软拼音3.0搜狗拼音说明
NoControl首次调出后按一次ctrl+space才能正确使用 中西标点或全半角字符继承上次设置调出后默认为英文输入状态 调出后默认为西文标点 英文输入时为半角字符调出后默认为英文输入状态 调出后默认为西文标点 英文输入时为半角字符不建议使用
On调出后默认为汉字输入状态 中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置 
Off 调出后默认为汉字输入状态 中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置 
Disable调出后默认为英文输入状态中西标点或全半角字符继承上次设置调出后默认为英文输入状态 调出后默认为西文标点 英文输入时为半角字符调出后默认为英文输入状态调出后默认为西文标点 英文输入时为半角字符推荐使用,适合于密码输入
AlphaFull调出后默认为汉字输入状态 中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置 
Alpha调出后默认为汉字输入状态 中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置 
HangulFull调出后默认为汉字输入状态 中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置调出后默认汉英文输入、中西标点或全半角字符继承上次设置
Hangul调出后默认为汉字输入状态 中西标点或全半角字符继承上次设置调出后默认为汉字输入状态 调出后默认为西文标点 英文输入时为半角字符调出后默认为汉字输入状态 调出后默认为西文标点 英文输入时为半角字符
Close 首次调出后按一次ctrl+space才能正确使用 中西标点或全半角字符继承上次设置调出后默认为汉字输入状态 调出后默认为西文标点 英文输入时为半角字符调出后默认为汉字输入状态 调出后默认为西文标点 英文输入时为半角字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: