大家好,寡人现在需要扩展一个编辑框控件,主要实现如下功能:
1,在编辑框获取焦点时候显示输入法面板,编辑框失去焦点时候隐藏输入发面板
2,在编辑框获取焦点后,点击编辑框父窗口Form空白区域或者类似于label的控件时候能够让编辑框失去焦点,自动隐藏输入发面板,但是问题是此时如何让编辑框失去焦点?

解决方案 »

  1.   

     protected override void WndProc(ref Message m)
            {
                if (m.Msg == 0x202 || m.Msg == 0x204)
                {
                    if (ActiveControl is TextBox)
                    {
                        ActiveControl = null;
                    }
                }
                base.WndProc(ref m);
            }
      

  2.   

    让其他控件获取焦点。
    比如在
    void form_Click(object sender, EventArgs e)
    {
     this.button1.Focus();
    }
      

  3.   


    我现在是在扩展一个编辑框控件,考虑到重用问题,你的方法虽然可行,但是如果用到项目中的话我要更改的地方太多,要更改的form太多,有办法在编辑框类内部实现这个功能么?
      

  4.   


    我用的平台是window CE,不支持WndProc的重写
      

  5.   

    在编辑框类内部的Leave事件中让ActiveControl = null;