C#为控件添加快捷键的问题

WinWing 2007-05-10 07:45:29
假设我在form1上有个按钮send,send的click事件为 send_click,如何为send添加快捷键ctrl + S?

我的做法是这样:(问题在中间的注释行)
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if (keyData == (Keys.Control | Keys.S))
{
//..这里该如何与send_click联系起来
}

return base.ProcessCmdKey(ref msg, keyData);
}
或者有另外方法请告诉我,谢谢
...全文
380 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
WinWing 2007-05-10
  • 打赏
  • 举报
回复
to epngllh(秋天的眼睛):
是的,初学C#还不是很明白它的机制,见笑了
epngllh 2007-05-10
  • 打赏
  • 举报
回复
不就是调用按钮的事件嘛,真是的,问得这么复杂....楼上已经是正确答案了.....
WinWing 2007-05-10
  • 打赏
  • 举报
回复
thanks,晚点结帖:)
greenery 2007-05-10
  • 打赏
  • 举报
回复
建议将Save操作放入独立函数,在有send_click和ProcessCmdKey调用

public void Save()
{
...
}
send_click (object sender, eventArgs e)
{
Save();
}
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if (keyData == (Keys.Control | Keys.S))
{
Save();
}

return base.ProcessCmdKey(ref msg, keyData);
}
-过客- 2007-05-10
  • 打赏
  • 举报
回复
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
if (keyData == (Keys.Control | Keys.S))
{
send_click(this, EventArgs.Empty);
}
return base.ProcessCmdKey(ref msg, keyData);
}
-过客- 2007-05-10
  • 打赏
  • 举报
回复
send_click(this, EventArgs.Empty);
WinWing 2007-05-10
  • 打赏
  • 举报
回复
up

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧