我自己做了个TextBox
只继承Control做的,不是重绘TextBox
但是我只能够做到让用户输入英文,通过KeyPress事件怎么才能让用户输入中文,出现输入法的东西,选定字后程序能够捕捉到……

解决方案 »

  1.   

    你可以暗藏一个textbox在窗体外不可见位置例如:-1000,-1000的地方,然后设置获得焦点,用户输入就可以和文本框一样了。
      

  2.   

    Ime调出来也没用……
    现在知道,用户按下键盘后,直接被窗体获取事件
    而不被输入法获取
    怎么发送按键给输入法?
      

  3.   

    TextBox.DefaultImeMode   
    TextBox.ImeMode 
      

  4.   

    谢谢你的回答,但不是继承TextBox……
    完全自己的类……
      

  5.   

    自己搞就太复杂了,楼主还是从了 TextBox
      

  6.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        class BoxText : Control
        {
            protected override void OnKeyPress(KeyPressEventArgs e)
            {
                e.Handled = true;
                Console.WriteLine(e.KeyChar.ToString());
                base.OnKeyPress(e);
            }
        }
    }
      

  7.   

    lz继承textbox  再把onpaint方法重写不就完了吗?
    为什么要全都自己写呢?
    你要写的话,你画出来的框 里面的字也要自己画,用户输入不是中文,就不要画呗。
      

  8.   

    调用API函数(具体是什么,忘记了,源码在家里)设置光标有焦点时,显示光标,
    无焦点时,销毁光标过程就是这样,我试过。注:光标就是闪动的那根竖线
      

  9.   

    既然是输入框那还是继承TextBoxBase比较好吧
      

  10.   

    你这些我都完成了,和正常的Textbox使用方法一样。
    但是没有中文输入功能……
      

  11.   

    实际上我连Windows.Forms里的东西都没碰
    基类都自己写了
    完全是自己的代码
    我自己做了很多控件,基本上都实现了
    就差这些需要调用系统的东西的控件……
      

  12.   

    如果不是英文可以判断,但是输入的中文,还能显示中文,这个,有鸭梨啊~![align=center]*************************************************
    本内容使用CSDN 小秘书回复
    看帖回帖,发帖也要结贴哦!
    *************************************************[/align]