| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4407 人关注过本帖
标题:C#给按钮设置快捷键,当按钮获取焦点时为什么快捷键不能用?
只看楼主 加入收藏
LK_soso
Rank: 2
等 级:论坛游民
帖 子:19
专家分:23
注 册:2009-7-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
C#给按钮设置快捷键,当按钮获取焦点时为什么快捷键不能用?
下面是我在练习做一个电话本中的一段语句:
        private void dataGridView1_KeyDown(object sender, KeyEventArgs e)//设置快捷键
        {            
            if (e.KeyCode == Keys.Delete)//当按下Del键时执行删除 操作
            {
                DialogResult r1 = MessageBox.Show("你确定要删除该联系人?", "删除联系人提示框", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (r1 == DialogResult.OK)
                    Delete();//执行删除操作
                SelectAll();//重新查看全部信息
            }

快捷键我是通过KeyDown事件设置的,if (e.KeyCode == Keys.Delete)里的内容与删除按钮里的内容相同,但为什么按钮获取焦点的时候,设置的快捷键就失效呢?
搜索更多相关主题的帖子: 快捷键 不能用 焦点 获取 
2009-08-04 11:12
angelo1011
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2008-3-21
收藏
得分:10 
快捷键失效?不起作用?还是你的光标没有放在dataGridView1上所以导致失效的啊?
2009-08-04 11:19
baikil
Rank: 10Rank: 10Rank: 10
来 自:X星球
等 级:青峰侠
威 望:4
帖 子:282
专家分:1580
注 册:2009-7-20
收藏
得分:10 
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)//设置快捷键
此主法只是在dataGridView1有焦点时才是有效的,但焦点失去了,你输入的键是没有效果的,
可以换为,在窗体中重写
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
          //处理要做的事,
         //不希望做其它做用,return true
         // 要做其它的  return base.ProcessCmdKey(ref msg, keyData);      
}

自创QQ群64885635,方便C#学习交流.希望各项工作路好学都好入!
2009-08-04 11:28
LK_soso
Rank: 2
等 级:论坛游民
帖 子:19
专家分:23
注 册:2009-7-20
收藏
得分:0 
回复 楼主 LK_soso
貌似是这样的,dataGridView1失去焦点了,焦点在按钮上了,汗了~我找了半天没找到原因!谢谢你们了
2009-08-04 14:36
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:0 
也可以写dataGridView1的上层容器的KeyDown事件

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-08-06 12:25
快速回复:C#给按钮设置快捷键,当按钮获取焦点时为什么快捷键不能用?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036740 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved