sinomac 发表于 2013-6-19 00:21:04

C#WinForm中按钮响应回车事件的简单方法

Winform中的按钮要响应回车事件,是很简单的事情!只要在窗体中的属性设置一下就可以了!
比如有登录窗体(Form_Login),包含有两个按钮登录 (btnLogin)和退出(btnExit),
想要登录 (btnLogin)响应回车键,则设置窗体(Form_Login)的属性AcceptButton为btnLogin即可!
即Form_Login.AcceptButton=btnLogin; 同样道理,
设置窗体(Form_Login)的属性CancelButton为btnExit,就可以响应Esc键了!
即Form_Login.CancelButton=btnExit;


lanneret 发表于 2013-6-19 08:35:21

呵,复习了。

hilite 发表于 2013-6-19 12:53:48

若在几个text box间跳转呢??

goodmangis 发表于 2013-6-19 13:35:25

不错,以前还真没有注意有这个功能,是VS2008到VS2012都可以吗?

nyfor 发表于 2013-6-19 20:32:30

本帖最后由 nyfor 于 2013-6-19 20:33 编辑

hilite 发表于 2013-6-19 12:53
若在几个text box间跳转呢??
这个容易, 将 Enter 按键模拟成 Tab 按键
首先设置 Form 的 KeyPreview 属性为 true, 以便让 Form 首先截获到 Key 事件.
然后添加 Form 的 KeyDown 事件中添加以下代码:namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
      public Form1()
      {
            InitializeComponent();
      }

      private void Form1_Load(object sender, EventArgs e)
      {
            this.KeyPreview = true;
            this.KeyDown += new KeyEventHandler(Form1_KeyDown);
      }

      void Form1_KeyDown(object sender, KeyEventArgs e)
      {
            if (e.KeyData == Keys.Enter)
            {
                SendKeys.Send("{TAB}");
            }
      }
    }
}

hngs 发表于 2013-6-19 21:10:32

学习学习,

nyfor 发表于 2013-6-19 21:14:29

goodmangis 发表于 2013-6-19 13:35
不错,以前还真没有注意有这个功能,是VS2008到VS2012都可以吗?

当然可以, 这个是 Dialog Window的基本特性.

l0711 发表于 2013-6-19 23:19:54

谢楼主提供.

qhdxzy 发表于 2013-6-20 10:10:35

很好的解决办法,学习了

seamone 发表于 2013-6-23 08:55:56

SendKeys.Send("{TAB}");

这句代码不错不错,谢谢分享。

mafansile 发表于 2013-6-23 12:04:13

挺赞,多谢楼主

眯眼笑 发表于 2013-6-29 23:26:34

VS2005里就有这个功能了,还有个地方可以设置窗体上所有控件响应TAB切换控件的顺序。。。
菜单【视图】-【TAB键顺序】

mangohappy 发表于 2013-7-3 02:57:24

AcceptButton 和 CancelButton 好像要在 ShowDialog 才有效
页: [1]
查看完整版本: C#WinForm中按钮响应回车事件的简单方法