C#自定义组合快捷键解决方案

定义快捷键的方法

 //在form_load的时候写上  
 //表示窗体接受按键事件  
 //然后在KeyDown事件中写入如下代码实现输入的是否是Ctrl+A的组合键:  
 private void Form1_KeyDown(object sender, KeyEventArgs e)  
 {  
     if (e.KeyCode == Keys.A && e.Modifiers == Keys.Control)  
         MessageBox.Show("Ctrl+R");  
 }  
  
 //验证输入的是不是组合键盘Ctrl+A  
 protected override bool ProcessCmdKey(ref Message msg, Keys keyData)  
 {  
     if (keyData == (Keys.Control | Keys.A))  
     {  
         MessageBox.Show("Ctr+A");  
     }  
     return base.ProcessCmdKey(ref msg, keyData);  
 }  
  
 //或者使用一般按键处理也就可以了  
 protected override bool ProcessDialogKey(Keys keyData)  
 {  
     if (keyData == (Keys.Control | Keys.A))  
     {  
         MessageBox.Show("Ctr+A");  
     }  
     return base.ProcessDialogKey(keyData);    
  }
  
  //从外部配置文件获取用户自定义组合键:比如XML,以ProcessCmdKey为例
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            //获取快捷键列表
            string shortCutKeys = XMLHelper.XmlRead2(XmlPath, "ShortCutKeys");
            //假设键与键之间用+号连接
            string[] keyStrs = shortCutKeys.Split(‘+‘);
            Keys combineKey = Keys.None;
            KeysConverter kc = new KeysConverter();
            foreach (string key in keyStrs)
                combineKey |= (Keys)kc.ConvertFromString(key.Trim());

            if (keyData == combineKey)
                //do something
            return base.ProcessCmdKey(ref msg, keyData);
        }
时间: 2024-11-13 01:35:48

C#自定义组合快捷键解决方案的相关文章

2018-04-10 自定义Linux快捷键

1.点击右上角进入设置2.选择"键盘"3.下拉到最下4.点击"+"号5.输入自定义的名称6.输入命令,为要打开的软件,如终端:/usr/bin/gnome-terminal7.点击"编辑",按下自定义的快捷键组合8.点击窗口右上角的叉退出定义页面9.完毕 终端中输入gedit打开附件中的"文件编辑器" 原文地址:https://www.cnblogs.com/shoubituling/p/8783499.html

Android自定义控件之自定义组合控件(三)

前言: 前两篇介绍了自定义控件的基础原理Android自定义控件之基本原理(一).自定义属性Android自定义控件之自定义属性(二).今天重点介绍一下如何通过自定义组合控件来提高布局的复用,降低开发成本,以及维护成本. 使用自定义组合控件的好处? 我们在项目开发中经常会遇见很多相似或者相同的布局,比如APP的标题栏,我们从三种方式实现标题栏来对比自定义组件带来的好处,毕竟好的东西还是以提高开发效率,降低开发成本为导向的. 1.)第一种方式:直接在每个xml布局中写相同的标题栏布局代码 <?xm

自定义组合控件和在自定义控件中使用自定义属性

今天,整理了一下我平时的笔记,写一个比较简单的自定义组合控件,仅供小白参考,大神请绕道,希望能够对大家有一些帮助 首先,得明白为什么我们需要自定义组合控件,它是因为原有控件并不能满足开发的需求,或者说并不能达到我们想要的一种效果,这个时候,就需要我们自己定义一些控件,以达到目的 ![先来看一下效果](http://img.blog.csdn.net/20160716224219109) 个人总结自定义控件的步骤: 1.先写一个布局,这里我用的是一个相对布局,我这里的相对布局就是根布局了 <?xm

Android自定义组合控件--底部多按钮切换

效果图: 现在市场上大多数软件都是类似于上面的结构,底部有几个按钮用于切换到不同的界面.基于OOP思想,我想把下面的一整块布局封装成一个类,也就是我们的自定义组合控件-底部多按钮切换布局,我把它叫做BottomLayout 看上面的布局,几个按钮横向排列,我们先看一下布局 最外面LinearLayout 方向 horizontal,然后5个weight相同的RelativeLayout,每个RelativeLayout里面有一个Button(用了显示选中状态)个ImageView(用来显示红点)

[android] 手机卫士自定义组合控件

设置中心 新建SettingActivity 设置GridView条目的点击事件 调用GridView对象的setOnItemClickListenner()方法,参数:OnItemClickListenner对象 匿名内部类实现,重写onItemClick()方法,传递进来的参数: parent是GridView对象,view是当前View对象,position是当前索引 switch判断,当时设置中心的索引时,跳转到设置中心 设置中心界面 使用相对布局,右边的<CheckBox/> 位于父

Android实例-手机安全卫士(七)-自定义组合控件

一.目标. 将多个系统控件(TextView.Button.CheckBox等)组合成一个自定义的控件,并像系统控件一样使用.如图所示第1个自动更新控件是根据相对布局放置而成的,第2个自动更新控件即为自定义组合控件,它可以想一般的TextView等系统控件一样重复使用. 自定义控件如图: 二.代码实现. 1.在layout文件夹下新建一个xml文件(取名model_setting_item.xml),用于保存自定义控件的布局. 2.在新建的xml文件(model_setting_item.xml

Android开发学习笔记-自定义组合控件的过程

自定义组合控件的过程 1.自定义一个View 一般来说,继承相对布局,或者线性布局 ViewGroup:2.实现父类的构造方法.一般来说,需要在构造方法里初始化自定义的布局文件:3.根据一些需要或者需求,定义一些API方法: ----------------------------------4.根据需要,自定义控件的属性,可以参照TextView属性: 5.自定义命名空间,例如: xmlns:itheima="http://schemas.android.com/apk/res/<包名&

自定义组合控件,适配器原理-Day31

自定义组合控件,适配器原理-Day31 mobile2.1 主页定义 手机上锁功能 1.弹出设置密码框. 手机下载进度 自定定义控件 控件的属性其实就是控件类一个属性设置属性调用类的set方法方法, 自定义组合控件的思路 生命一个View对象继承自相对布局,线性布局或者其他的ViewGroup 在View对象重写构造方法,然后初始化布局,通过View.inflate()方法把我们自己定义的布局挂到界面当中. 自定义属性在res/values目录下创建attrs.xml里面定义一些属性, <res

android 自定义组合控件

自定义控件是一些android程序员感觉很难攻破的难点,起码对我来说是这样的,但是我们可以在网上找一些好的博客关于自定义控件好好拿过来学习研究下,多练,多写点也能找到感觉,把一些原理弄懂,今天就讲下自定义组合控件,这个特别适合在标题栏或者设置界面,看下面图: 就非常适合使用组合控件了,现在写一个玩玩: activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"