开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 6155|回复: 12

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

[复制链接]

0

精华

6

贡献

225

赞扬

帖子
71
软币
1999
在线时间
134 小时
注册时间
2013-6-9
发表于 2013-6-19 00:21:04 | 显示全部楼层 |阅读模式
Winform中的按钮要响应回车事件,是很简单的事情!只要在窗体中的属性设置一下就可以了!
比如有登录窗体(Form_Login),包含有两个按钮登录 (btnLogin)和退出(btnExit),
想要登录 (btnLogin)响应回车键,则设置窗体(Form_Login)的属性AcceptButton为btnLogin即可!
即Form_Login.AcceptButton=btnLogin; 同样道理,
设置窗体(Form_Login)的属性CancelButton为btnExit,就可以响应Esc键了!
即Form_Login.CancelButton=btnExit;


评分

参与人数 3贡献 +2 赞扬 +2 收起 理由
jiongge + 1 Thanks
robone + 1
羽叶 + 2 感谢分享

查看全部评分

回复

使用道具 举报

0

精华

10

贡献

15

赞扬

帖子
17
软币
1139
在线时间
14 小时
注册时间
2013-6-8
发表于 2013-6-19 12:53:48 | 显示全部楼层
若在几个text box间跳转呢??
回复

使用道具 举报

0

精华

1316

贡献

885

赞扬

版主

帖子
176
软币
8139
在线时间
1139 小时
注册时间
2013-6-10
发表于 2013-6-19 13:35:25 | 显示全部楼层
不错,以前还真没有注意有这个功能,是VS2008到VS2012都可以吗?
回复

使用道具 举报

0

精华

74

贡献

722

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
183
软币
3861
在线时间
327 小时
注册时间
2013-6-7
发表于 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 事件中添加以下代码:
  1. namespace WindowsFormsApplication1
  2. {
  3.     public partial class Form1 : Form
  4.     {
  5.         public Form1()
  6.         {
  7.             InitializeComponent();
  8.         }

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

  14.         void Form1_KeyDown(object sender, KeyEventArgs e)
  15.         {
  16.             if (e.KeyData == Keys.Enter)
  17.             {
  18.                 SendKeys.Send("{TAB}");
  19.             }
  20.         }
  21.     }
  22. }
复制代码

评分

参与人数 2贡献 +3 赞扬 +1 收起 理由
cosky + 1 Thanks
羽叶 + 3 赞一个

查看全部评分

回复

使用道具 举报

0

精华

74

贡献

722

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
183
软币
3861
在线时间
327 小时
注册时间
2013-6-7
发表于 2013-6-19 21:14:29 | 显示全部楼层
goodmangis 发表于 2013-6-19 13:35
不错,以前还真没有注意有这个功能,是VS2008到VS2012都可以吗?

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

使用道具 举报

0

精华

422

贡献

15

赞扬

帖子
36
软币
2079
在线时间
94 小时
注册时间
2013-6-18
发表于 2013-6-19 23:19:54 | 显示全部楼层
谢楼主提供.
回复

使用道具 举报

0

精华

105

贡献

28

赞扬

帖子
73
软币
1055
在线时间
173 小时
注册时间
2013-6-20
发表于 2013-6-20 10:10:35 | 显示全部楼层
很好的解决办法,学习了
回复

使用道具 举报

0

精华

2887

贡献

2137

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
200
软币
12411
在线时间
2047 小时
注册时间
2013-6-22

胡吹海聊神经正常

发表于 2013-6-23 08:55:56 | 显示全部楼层
SendKeys.Send("{TAB}");

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

使用道具 举报

0

精华

27

贡献

11

赞扬

帖子
57
软币
324
在线时间
20 小时
注册时间
2013-6-15
发表于 2013-6-23 12:04:13 | 显示全部楼层
挺赞,多谢楼主
回复

使用道具 举报

0

精华

134

贡献

117

赞扬

帖子
151
软币
1620
在线时间
90 小时
注册时间
2013-6-8
发表于 2013-6-29 23:26:34 | 显示全部楼层
VS2005里就有这个功能了,还有个地方可以设置窗体上所有控件响应TAB切换控件的顺序。。。
菜单【视图】-【TAB键顺序】
回复

使用道具 举报

0

精华

593

贡献

67

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
68
软币
2012
在线时间
141 小时
注册时间
2013-6-9
QQ
发表于 2013-7-3 02:57:24 | 显示全部楼层
AcceptButton 和 CancelButton 好像要在 ShowDialog 才有效
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-5-3 13:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表