There appears to be a bug in how the OS X implementation of keyboard events is handled. The bug reveals itself when either multiple keys are pressed in rapid succession or all at once.
Running my app on Win7 if I hit the keys 'J' 'K' 'L' all at once, I can always get all three keys (though not in any particular order). But on OS X, while running Windows Forms applications, I can get 'JJJ' or 'JKK' or 'LLL'. Nowhere else in OS X is this behavior exhibited (native Cocoa apps, such as TextEdit, behave identical to Win7). Source code: (in Visual Studio, create a windows forms project, and edit Form1's code): public partial class Form1 : Form { public Form1(){ InitializeComponent(); KeyPress += Form1_KeyPress; KeyDown += Form1_KeyDown;} void Form1_KeyDown(object sender, KeyEventArgs e) {Console.WriteLine("KeyDown: " + e.KeyCode.ToString());} void Form1_KeyPress(object sender, KeyPressEventArgs e) {Console.WriteLine("KeyPress: " + e.KeyChar.ToString());} } Running on Windows 7 (hitting JKL all at once): KeyDown: L KeyPress: l KeyDown: J KeyPress: j KeyDown: K KeyPress: k Running on OS X Mountain Lion, via Mono 2.10.10 (hitting JKL all at once; note it can take a couple attempts) KeyDown: L KeyPress: k KeyDown: J KeyPress: k KeyDown: K KeyPress: k If you missed it, all KeyPress events are 'k', the result was 'kkk'. Why is that? -- View this message in context: http://mono.1490590.n4.nabble.com/Incorrect-missing-and-duplicate-keypress-events-tp4658863.html Sent from the Mono - WinForms mailing list archive at Nabble.com. _______________________________________________ Mono-winforms-list maillist - Mono-winforms-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-winforms-list