本人给某公司开发了一个小管理系统(C/s)版用VS2005开发 MDI窗体昨天给客户装上测试,晕了,他们只要向TextBox中输入字符,输入法就变成全角的了,我在开发的时候没有碰到这个问题....全角输入:123456789
半角输入:123456789虽然可以Shift+(空格)可以切换,但是客户体验度很差,这样用很烦人以前从来没有碰到过全角,半角的问题,所以开发的时候没考虑到这一点,本人暂时还是菜鸟一只,希望有高手帮我解决下.......到网上搜索了半天....有解决方法,但是他们好象说对MDI开发的有问题,不幸的是我正是用MDI模式开发的...我的机器上没有出现自动切换成全角的问题(开发和安装以后都没问题,到客户那里就出鬼了),也不知道怎么去测试,修改
半角输入:123456789虽然可以Shift+(空格)可以切换,但是客户体验度很差,这样用很烦人以前从来没有碰到过全角,半角的问题,所以开发的时候没考虑到这一点,本人暂时还是菜鸟一只,希望有高手帮我解决下.......到网上搜索了半天....有解决方法,但是他们好象说对MDI开发的有问题,不幸的是我正是用MDI模式开发的...我的机器上没有出现自动切换成全角的问题(开发和安装以后都没问题,到客户那里就出鬼了),也不知道怎么去测试,修改
解决方案 »
- C# 调用Cmd命令的问题。
- 谁能提供一个editor的参考?可以实现从外面拖图片,视频,音频格式文件到此editor里面进行操作?
- 如何在C#中构建一个通用的dataReader的方法?
- 所有C# Winform程序无法运行!!!!
- 帮忙看看这个xml文件如何修改选中的节点信息?
- 谢谢!在winform里,导出excel后怎么能弹出让用户保存的对话框?
- C#创建Bitmap新实例的问题?
- 在vb.net中结束程序用end就行了,在c#中用什么那???????
- 写一个可以接受任何类型的冒泡排序算法的实现方案。(请提供源码)
- 请问一个关于连接ACCESS数据库问题?
- 刚学C#,新人求教关于视频截图,和截取视频代码
- x==x,结果为false?
[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;
//重载Form的OnActivated
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); //转换成半角
}
}
}
就可以解决这个问题
This.ImeMode = ImeMode.Hangul;
还有点效果,智能ABC问题比较严重,我还发现会自动录入字符,新出的输入法基本没事.
this.textbox.ImeMode = ImeMode.Off;
http://blog.csdn.net/netcoder/archive/2009/02/18/3907472.aspx
打个补丁就行了
1.打微软补丁 无效 基本上这个补丁打了和没打一样
2.设置ImeMode 部分情况下有用 但不能保证全部游泳 而且每个控件都要设置 太麻烦
大哥,我安装你给的补丁,咋安装不了呢,提示Windows Installer 服务不能安装此升级修补程序,因为找不到升级的程序或.......
你download window installer 3.0
就可以解决这个问题
IMEMode属性;
IMESTATUS函数;
就搞定这个在VFP里不是问题的问题;
VFP8对winxp百分百的支持;在win200、winxp里都没有;
最好的办法是直接升级VS 2008!
不过VC++ 2005的MFC部分,没这个bug。