2009-10-13 12 views
6

tienen esto en una aplicación de C# .NET: clave.Net KeyEventArgs volver vs introducir

cadena = e.KeyCode.ToString();

en .NET 1.1 key = "entrar"

en .NET 3.5 key = "retorno"

mi pregunta es ¿por qué son diferentes?

+1

hacer ambas aplicaciones tienen el mismo CultureInfo? –

+0

Sí - la misma aplicación exacta está compilada con vs2003 .net 1.1 y la otra con vs2008 .net 3.5 – dnndeveloper

Respuesta

12

La enumeración Keys tiene valores idénticos para Enter y Return (también tiene una serie de otros duplicados). El marco eligió un valor diferente en ToString.

+0

eso es, verificado aquí: http://msdn.microsoft.com/en-us/library/system. windows.forms.keys (VS.71) .aspx si alguien tiene una hoja de trucos que sería increíble. – dnndeveloper

+1

¿Una hoja de trucos para qué? – SLaks

+0

mostrando qué valores son los mismos, como la tecla enter y return en las teclas enum. Usted mencionó que hay otros duplicados. – dnndeveloper

8

Aquí están todos los nombres duplicados: Esta fue generado por la consulta siguiente en LINQPad:

Enum.GetNames(typeof(Keys)) 
    .GroupBy(k => Enum.Parse(typeof(Keys), k)) 
    .Where(g => g.Count() > 1) 
    .Select(g => String.Join(", ", g.Select(k => k.ToString()).ToArray())) 

Enter, Return 
CapsLock, Capital 
HangulMode, HanguelMode, KanaMode 
KanjiMode, HanjaMode 
IMEAccept, IMEAceept 
Prior, PageUp 
PageDown, Next 
Snapshot, PrintScreen 
OemSemicolon, Oem1 
Oem2, OemQuestion 
Oem3, Oemtilde 
Oem4, OemOpenBrackets 
OemPipe, Oem5 
OemCloseBrackets, Oem6 
OemQuotes, Oem7 
Oem102, OemBackslash