我想这是普遍遇到的问题吧?有没有人有解决方法?
如图:

解决方案 »

  1.   

    好像你再按下Ctrl+空白就可以了!
      

  2.   

    试试ImeMode属性,我也不知道设置什么值
      

  3.   

    囧,这样对用户很不方便.用户很会挑毛病.按Ctrl+空格多余吧?首次要按2次才行.
      

  4.   

    想不到vs2008还是这样,我还是用vs2005算了,尽量不需要用户输入,呵呵
      

  5.   

    2008还有这个bug啊... 我以为都修复了.还好没用
    2005有补丁的 lz到ms网站上找找2008补丁
      

  6.   

    我是强行设置 Control.ImeMode = ImeMode.on
      

  7.   

    我又做了个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);
            }
        }
      

  8.   


    为什么你没有全角半角的问题?大家都有这个问题啊,是微软的BUG。