还有就是在OnKeyDown事件中如何提取中文?

解决方案 »

  1.   

    输入法那个窗口没啊,就像焦点在Textbox控件上是有输入法窗口的,如果焦点在不可文字编辑的控件上,输入法窗口是没有的,如何将输入法窗口显现出来,比如说picturebox上就没有输入法窗口
      

  2.   

    其实我要做一个文字编辑器,它是继承于Form的,要在窗体上直接输入汉字,英文可以输入,但中文一直获得不了
    不知咋办啊??
      

  3.   

     在窗体里 重写 WndProc 方法
     捕获  输入法输入结束之前的消息(消息值为:0x286)
     用消息对象m的WParam属性的ToInt32()获得字符值.
     用 Convert.ToChar(字符值) 方法获得对应的中文
            
            例:
            protected override void WndProc(ref Message m)
            {
                if (m.Msg == 0x286)
                    MessageBox.Show("你输入了:" + Convert.ToChar(m.WParam.ToInt32()).ToString());
                 base.WndProc(ref m);
            }
      

  4.   

    0x286是WM_IMC_CHAR消息,但捕捉不到这个消息,因为你输入法窗口都没有
    C#封装时把这个输入法窗口隐了
    windows编程就可以显示出输入法窗口
    我的意思是在窗体上打入汉字。
      

  5.   

    //获得输入焦点
            [DllImport("user32.dll")]
            static extern IntPtr SetFocus(IntPtr hWnd);
      

  6.   

    想要窗体获得输入焦点? 好像不能勒~
    首先窗体上 不能有任何子控件
    没试过,但是 我在Panel上实现了
     重写Panel  WndProc 方法 
      

  7.   

    ime这个属性还没用过呢,以前老见,说什么输入法之类的,没发现用处
    今天恍然大悟啊哈哈
    学习了
      

  8.   

    继承于Control是行的,但Form就是不行
    不知有没有API将IME窗口给显示出来??
      

  9.   

    不知道微软在哪个消息上动了手脚,将IME窗口给隐藏掉了
      

  10.   

    http://whx.tzgt.gov.cn/newOperate/html/1/12/122/8449.html
    去看看