none
e.keychar和e.keycode有什么区别? RRS feed

  • 问题

  • e.keychar和e.keycode有什么区别? 它们是不是一样的?
    本人现在使用Windows Server 2003, CentOS Linux 5.2, Windows XP, VirtualBox 2.1.4, Visual Studio 2005, Eclipse 3.4, Microsoft.NET Framework 2.0 SP2, C# 2.0, IIS 6.0, Apache 1.3.41, Nginx-0.6.36, SQL Server 2000, MySQL 5.0, FireBird 2.1.1, PHP 5.2.4, Office 2007, OpenOffice 3.0和永中Office2009.
    2009年5月8日 23:46

答案

  • 你好!
         KeyChar获得是字符,类型是Char,是KeyPressEventArgs类的属性
         KeyCode获得是键码,类型是Keys枚举,是KeyEventArgs类的属性
    周雪峰
    • 已标记为答案 dvdvip 2009年5月9日 2:27
    2009年5月9日 0:40
    版主
  • 2者的区别是在处理控制键上面,比如CTRL,SHIFT以及ALT。

    当用户同时按下 CTRL + C 的时候,KeyDown事件会相应两次,KeyCode的值分别会是 CTRL键 和 C键。但是随后的KeyPress会相应一次,产生的KeyChar的值是3。

    若是用户在按住CTRL + C不放的话,KeyDown和KeyPress会一直交替引发,但是这个时候,KeyDown就只有 C 键了(CTRL键不再引发该事件),KeyPress就是3.


    MCPD (Windows & Web)
    • 已标记为答案 dvdvip 2009年5月9日 2:27
    2009年5月9日 0:56

全部回复

  • 你好!
         KeyChar获得是字符,类型是Char,是KeyPressEventArgs类的属性
         KeyCode获得是键码,类型是Keys枚举,是KeyEventArgs类的属性
    周雪峰
    • 已标记为答案 dvdvip 2009年5月9日 2:27
    2009年5月9日 0:40
    版主
  • 2者的区别是在处理控制键上面,比如CTRL,SHIFT以及ALT。

    当用户同时按下 CTRL + C 的时候,KeyDown事件会相应两次,KeyCode的值分别会是 CTRL键 和 C键。但是随后的KeyPress会相应一次,产生的KeyChar的值是3。

    若是用户在按住CTRL + C不放的话,KeyDown和KeyPress会一直交替引发,但是这个时候,KeyDown就只有 C 键了(CTRL键不再引发该事件),KeyPress就是3.


    MCPD (Windows & Web)
    • 已标记为答案 dvdvip 2009年5月9日 2:27
    2009年5月9日 0:56