找回密码
 立即注册
搜索
查看: 1474|回复: 7

[其他] 【C#学习】如何在控件里添加快捷键?

[复制链接]
     
发表于 2021-6-8 14:39 | 显示全部楼层 |阅读模式
本帖最后由 独自旅行 于 2021-6-8 15:25 编辑

从网络上看了点博文然后试着进行代码改装。不出所料的出了问题。
  1.         private void Form1_KeyDown(object sender, KeyEventArgs e)
  2.         {
  3.             switch (e.KeyData)
  4.             {
  5. <u>                case (e.KeyData == (Keys.Alt | Keys.S)):</u>  //报错:控件无法从最早用例标签(case(......))脱离开关,无法将类型“bool”隐式转换为“sys.win.form.keys”
  6.                     e.Handled = true;
  7.                     OpenSeting.PerformClick();                                
复制代码

顺便说下博文的案例代码为:

  1. private void Form1_KeyDown(object sender, KeyEventArgs e)
  2.         {
  3.             if (e.KeyData == (Keys.S | Keys.Alt))//按下alt+s键
  4.             {
  5. e.Handled = true;//将Handled设置为true,指示已经处理过KeyPress事件
  6.                 textBox1.Focus();//将键盘焦点聚焦到textBox1控件上。
  7.             }
  8.             else if (e.KeyData == (Keys.X | Keys.Alt))//按下alt+x
  9.             {
  10. e.Handled = true;
  11.                 this.showMsg("hello world!");//执行showMsg方法
  12.             }
  13.             else if (e.KeyData == Keys.Escape)//按下esc键
  14.                 this.Close();   //关闭窗口
  15.         }
复制代码

虽然说小程序按钮不多,使用多道IF语句也可以凑合凑合过去。但是总觉得不爽……问题没解决很不爽。
回复

使用道具 举报

     
发表于 2021-6-8 16:45 | 显示全部楼层
如果都是Alt+字母这样的快捷键的话,可以给按钮的Text属性写成“保存(&S)”这样
回复

使用道具 举报

     
发表于 2021-6-8 17:22 | 显示全部楼层
组合键应该是 (Keys.S && Keys.Ctrl)
如果是单纯alt 组合键,如楼上所说
回复

使用道具 举报

头像被屏蔽
     
发表于 2021-6-8 17:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2021-6-8 17:54 | 显示全部楼层
chachi 发表于 2021-6-8 17:22
组合键应该是 (Keys.S && Keys.Ctrl)
如果是单纯alt 组合键,如楼上所说

如果写成switch语句的话,应该是这样吧
  1. switch (e.KeyData)
  2. {
  3. case (Keys.Alt | Keys.S):
  4.     e.Handled = true;
  5.     OpenSeting.PerformClick();
  6.     break;
  7. }
复制代码
回复

使用道具 举报

     
发表于 2021-6-8 18:25 | 显示全部楼层
HotKey.RegisterHotKey 注册热键
回复

使用道具 举报

     
 楼主| 发表于 2021-6-9 12:47 | 显示全部楼层
RAMDA 发表于 2021-6-8 16:45
如果都是Alt+字母这样的快捷键的话,可以给按钮的Text属性写成“保存(&S)”这样 ...

后面加&S的话我测试过了,直接按S也能生效。无需……ALT键
回复

使用道具 举报

     
 楼主| 发表于 2021-6-9 12:48 | 显示全部楼层
RAMDA 发表于 2021-6-8 17:54
如果写成switch语句的话,应该是这样吧

这个方法为好像试过?
抽空再试试?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-12 10:23 , Processed in 0.059004 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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