注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

SINOBANJO

IN GOD WE TRUST ! ~ ClueeZhuo

 
 
 
 
 

日志

 
 

C#KeyPress、KeyDown和ProcessCmdKey事件  

2012-04-18 21:41:54|  分类: 班卓C# |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
今天处理Delete按钮事件时遇Form中的所有的TextBox 都不能响应Delete键。其它的键都能响应,按Delete 连KeyPress Event 都不进!!但是其它的Form都可以。怎么启用Delete????
后来查资料得知:KeyPress事件的sender是有 ASCII 的key而例如delete ,down ,up ,end etc.... 是没有的,SO 没有触发Keypress事件而他们触发的是在form中存在的一个事件: ProcessCmdKey事件, 里面监听的是所有没有ASCII 吗的按下事件!!!CKeyPress、KeyDown和ProcessCmdKey事件 - 班卓安迪 - BanjoElena—班卓埃琳娜国际
 
我就这么处理:
 protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
           
            if (keyData == Keys.Delete)


                OnKeyPress(new KeyPressEventArgs((Char)Keys.Delete));

            return base.ProcessCmdKey(ref msg, keyData);

        }

或者在KeyDown事件(后来知道KeyDown里的监听):
 private void listView1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode ==Keys.Delete && this.listView1.SelectedItems.Count > 0)
            {

                foreach (var item in this.listView1.SelectedItems)
                {
                    this.listView1.Items.Remove((ListViewItem)item);
                }
            }

}
  评论这张
 
阅读(176)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017