小弟用C#Windows应用程序做一个用户名密码登录的程序,运行时发现输入密码后敲回车则密码textbox的内容被清空了,没有触发确定按钮,求高手指点如何解决,按下回车键即可触发确定按钮的单击事件,密码框不会被清空。

解决方案 »

  1.   

    protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
    {
        if (msg.WParam.ToInt32() == (int)Keys.Enter)
        {
            switch (ActiveControl.Name)
            {
                case "button1": MessageBox.Show(button1.Text); return true;
                case "textBox1": MessageBox.Show(textBox1.Text); return true;
                case "textBox2":
                    return true;
            }
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }private void frmLogin_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
      {
      if(e.KeyCode == Keys.Enter )
      {
      SendKeys.Send("{Tab}");   
      }
      }  
      

  2.   

    在设计器里把Form的AcceptButton设置为你想按的button,就可以在按下enter的时候触发这个button的click事件了
      

  3.   


    文本框比较多的话在winform里重写
    protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg,     System.Windows.Forms.Keys keyData)
    {
       
    }文本框比较少的话用
    AcceptButton
      

  4.   

    在设计器里把Form的AcceptButton设置为你想按的button,就可以在按下enter的时候触发这个button的click事件了