• C#中使用组合键事件,c#2005中组合键的应用


    组合键在程序中是很有用的,像聊天软件中ctrl+回车发送消息,又或是ctrl+A来回完成什么快捷操作等。在c#中应用这类组合快捷键也是比较方便的,但对于初学者来说,可能以前总是用'+'来运算键值,这种方法到了C#中可就不那么灵光了,那么到底如何应用呢,看一段简单的代码。

    首先要设置Form.KeyPreview 属性为true,以便窗体能接收键盘事件.

    例如Alt   +   F  
      private   void   Form1_KeyDown(object   sender,   System.Windows.Forms.KeyEventArgs   e)  
      {  
            if((e.Alt)&&(e.KeyCode==System.Windows.Forms.Keys.F))  
            {  
                  this.KeyPreview=true;  
                  MessageBox.Show("XX");  
            }  
      }

    例如Alt   +   E

    private void treeView1_KeyDown(object sender, KeyEventArgs e){   /* If the 'Alt' and 'E' keys are pressed,      * allow the user to edit the TreeNode label. */   if(e.Alt && e.KeyCode == Keys.E)            {      treeView1.LabelEdit = true;      // If there is a TreeNode under the mose cursor, begin editing.       TreeNode editNode = treeView1.GetNodeAt(         treeView1.PointToClient(Control.MousePosition));      if(editNode != null)      {          editNode.BeginEdit();      }   }}private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e){   // Disable the ability to edit the TreeNode labels.   treeView1.LabelEdit = false;}
     
    
    

    属性值
    如果窗体将接收所有键事件,则为 true;如果窗体上当前选定控件接收键事件,则为 false。默认为 false。

    命名空间:System.Windows.Forms
    程序集:System.Windows.Forms(在 system.windows.forms.dll 中)

    当此属性设置为 true 时,窗体将接收所有 KeyPress、KeyDown 和 KeyUp 事件。在窗体的事件处理程序处理完该击键后,然后将该击键分配给具有焦点的控件。例如,如果 KeyPreview 属性设置为 true,而且当前选定的控件是 TextBox,则在窗体的事件处理程序处理了击键后,TextBox 控件将接收所按的键。要仅在窗体级别处理键盘事件并且不允许控件接收键盘事件,请将窗体的 KeyPress 事件处理程序中的 KeyPressEventArgs.Handled 属性设置为 true。

    可以使用此属性处理应用程序中的大部分击键事件,并可以处理击键事件或调用适当的控件来处理击键事件。例如,当应用程序使用功能键时,可能希望在窗体级别处理这些击键,而不是为可能接收击键事件的每个控件编写代码。

    注意
    如果窗体没有可见或启用的控件,则该窗体自动接收所有键盘事件。
    可以对窗体上的控件进行编程,以取消它所接收的任何击键。由于控件从不向窗体发送这些击键,因此无论 KeyPreview 为何种设置,窗体永远都无法看到它们。

    Form.KeyPreview 属性
    获取或设置一个值,该值指示在将键事件传递到具有焦点的控件前,窗体是否将接收此键事件。 

  • 相关阅读:
    删除无效的SQL SERVER组中的注册的几种方法
    SQLServer中把某个表里的记录复制到另一个数据库的表中
    文件上传 带进度条(多种风格)
    Team Leader你会带团队吗?你懂合作吗?你好像都不会啊!(上)
    整理.Net代码生成器(转)
    SQL SERVER 2000数据库,转换为ACCESS数据库(已解决ACCESS自动编号问题)
    js中prototype用法
    js在火狐和IE浏览器的差异
    Varnish介绍
    C# 4.0 新特性
  • 原文地址:https://www.cnblogs.com/hfzsjz/p/1759648.html
Copyright © 2020-2023  润新知