谁有VS2008 输入框里的输入法首次变灰解决方法? 我想这是普遍遇到的问题吧?有没有人有解决方法?如图: 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好像你再按下Ctrl+空白就可以了! 试试ImeMode属性,我也不知道设置什么值 囧,这样对用户很不方便.用户很会挑毛病.按Ctrl+空格多余吧?首次要按2次才行. 想不到vs2008还是这样,我还是用vs2005算了,尽量不需要用户输入,呵呵 2008还有这个bug啊... 我以为都修复了.还好没用2005有补丁的 lz到ms网站上找找2008补丁 我是强行设置 Control.ImeMode = ImeMode.on 我又做了个TextBox控件,TextBox的你就用这个控件就没问题了哈。其他的类似。public partial class CTextBox : TextBox { public CTextBox() { InitializeComponent(); this.KeyPress+=new KeyPressEventHandler(CTextBox_KeyPress); } protected override void OnPaint(PaintEventArgs pe) { // TODO: 在此处添加自定义绘制代码 // 调用基类 OnPaint base.OnPaint(pe); } /// <summary> /// 在keypress事件中执行全角转半角任务 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected virtual void CTextBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar != (char)13) { e.KeyChar = char.Parse(ToDBC(e.KeyChar.ToString())); } } /// <summary> /// 全角转半角 /// </summary> /// <param name="input"></param> /// <returns></returns> ///<res> ///全角空格为12288,半角空格为32(此处不必转空格) ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///</res> private string ToDBC(string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 12288) { c[i] = (char)32; continue; } if (c[i] > 65280 && c[i] < 65375) { c[i] = (char)(c[i] - 65248); } } return new string(c); } } 为什么你没有全角半角的问题?大家都有这个问题啊,是微软的BUG。 关于类型"bool?" 错误:Exception of type System.OutOfMemoryException was thrown 关于动态生成对象的问题 关于写XML文件的问题!!跪求啊 Visual Studio环境下Windows应用程序和智能设备有何异同? 关于邮件发送的问题 关于卢彦的《利用XML实现通用WEB报表打印》一文问题的续.在线急救! 大家帮忙看看这个问题呢! 有没有c#关于图形,图象编程的书? 我安装了VS.NET 怎么不能用? 如何生成一个正式的C#软件? Datagridview单元绑定问题?
2005有补丁的 lz到ms网站上找找2008补丁
public partial class CTextBox : TextBox
{
public CTextBox()
{
InitializeComponent();
this.KeyPress+=new KeyPressEventHandler(CTextBox_KeyPress);
} protected override void OnPaint(PaintEventArgs pe)
{
// TODO: 在此处添加自定义绘制代码 // 调用基类 OnPaint
base.OnPaint(pe);
}
/// <summary>
/// 在keypress事件中执行全角转半角任务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected virtual void CTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != (char)13)
{
e.KeyChar = char.Parse(ToDBC(e.KeyChar.ToString()));
}
}
/// <summary>
/// 全角转半角
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
///<res>
///全角空格为12288,半角空格为32(此处不必转空格)
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
///</res>
private string ToDBC(string input)
{
char[] c = input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i] == 12288)
{
c[i] = (char)32;
continue;
}
if (c[i] > 65280 && c[i] < 65375)
{
c[i] = (char)(c[i] - 65248);
}
}
return new string(c);
}
}
为什么你没有全角半角的问题?大家都有这个问题啊,是微软的BUG。