当前位置:编程学习 > C#/ASP.NET >>

为何当单击Enter键时,不触发图像单击事件

登录页面的提交功能是由图像的单击事件实现的,想让用户按下回车键时,也提交页面,于是按照大家的帮助。先,获得enter键,然后判断调用图像单击事件,过程如下:

图像单击事件:
private void Loginbutton_Click(object sender, EventArgs e)
        {
            string username = UserName.Text;
            string password = PassWord.Text;
            username = username.Trim();
            password = password.Trim();
            string js = JSXZ.Text;
        }

按下enter键,触发图像单击事件:
 private void Login_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                this.Loginbutton_Click(null, null);
            }
        }

问题:1、运行程序,按下enter键没有任何反应。
      2、图像单击事件调用程序“this.Loginbutton_Click(null, null);”对吗?中间的“null”是不是存在问题?

请多多指教。。。 --------------------编程问答-------------------- 可能你获得焦点的是TEXTBOX而不是FORM,所以你用FORM的键盘事件可能无效 --------------------编程问答-------------------- Loginbutton.PerformClick
设置窗体的AcceptButton为要执行的按钮
Loginbutton_Click(Loginbutton, null);
--------------------编程问答--------------------
引用 2 楼 wuyq11 的回复:
Loginbutton.PerformClick
设置窗体的AcceptButton为要执行的按钮
Loginbutton_Click(Loginbutton, null);


“Loginbutton.PerformClick”,这是什么东东?

图像单击事件调用程序“this.Loginbutton_Click(null, null);”对吗?


--------------------编程问答-------------------- 按下enter键,触发图像单击事件 有误!
--------------------编程问答-------------------- 两个可能,第一种是:调用 Loginbutton_Click(object sender, EventArgs e)方法失败
          第二种是,FORM没有获得焦点
把Loginbutton_Click方法里的内容直接copy到Login_KeyDown方法里面,就可以检测出问题在那了。 --------------------编程问答--------------------
引用 5 楼 cdf881125 的回复:
两个可能,第一种是:调用 Loginbutton_Click(object sender, EventArgs e)方法失败
  第二种是,FORM没有获得焦点
把Loginbutton_Click方法里的内容直接copy到Login_KeyDown方法里面,就可以检测出问题在那了。


据推测,应该是“调用 Loginbutton_Click(object sender, EventArgs e)方法失败”,因为在下换用了另一种方式,也不行。
--------------------编程问答-------------------- 2、图像单击事件调用程序“this.Loginbutton_Click(null, null);”对吗?中间的“null”是不是存在问题?
改成:
Loginbutton_Click(sender, e);试试 --------------------编程问答-------------------- Loginbutton_Click(object sender, EventArgs e)中没有使用sender和e所以我觉得this.Loginbutton_Click(null, null)这样调用应该没有问题 --------------------编程问答--------------------
引用 2 楼 wuyq11 的回复:
Loginbutton.PerformClick
设置窗体的AcceptButton为要执行的按钮
Loginbutton_Click(Loginbutton, null);


什么意思,能详细点吗?看不懂啊。

“Loginbutton.PerformClick“这是什么?
--------------------编程问答-------------------- 试试
this.Loginbutton_Click(this, null);
--------------------编程问答-------------------- 试下keypress(不知道写错了没有) --------------------编程问答--------------------
引用 11 楼 thomas860 的回复:
试下keypress(不知道写错了没有)


这个应该不会错吧。。。 --------------------编程问答-------------------- 为何不把 Loginbutton_Click 中的

string username = UserName.Text;
  string password = PassWord.Text;
  username = username.Trim();
  password = password.Trim();
  string js = JSXZ.Text;
封装为一个方法 两个事件都调用这个方法呢?

private void Loginbutton_Click(object sender, EventArgs e)
  {
  Login();
  }
private void Login_KeyDown(object sender, KeyEventArgs e)
  {
  if (e.KeyCode == Keys.Enter)
  {
  Login();
  }
  }
public void Login()
{
    string username = UserName.Text;
  string password = PassWord.Text;
  username = username.Trim();
  password = password.Trim();
  string js = JSXZ.Text;
}

--------------------编程问答--------------------
引用 12 楼 guhonglangzi 的回复:
引用 11 楼 thomas860 的回复:
试下keypress(不知道写错了没有)


这个应该不会错吧。。。
 ` --------------------编程问答-------------------- 要触发键盘事件,首先控件要用焦点哦,你保证这点了吗?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,