public static void RegisterKeyPressed(int key, KeyPressedEventHandler eventHandler) { if (keyPressed.ContainsKey(key)) { keyPressed[key] += eventHandler; } else { keyPressed[key] = eventHandler; } }
private void ScanThreadMethod() { var prevKey = -1; while (_scanThreadActive) { var nbKey = 0; // Scans the matrix for (var i = 0; i < 4; i++) { for (var j = 0; j < 3; j++) { if (!ReadMatrix(i, j)) { continue; } // A key has been pressed var keyNum = (i * 3) + j + 1; nbKey += keyNum; if ((prevKey != keyNum) && (prevKey == -1)) // A key has been pressed and no other is currently pressed (avoids dealing with multiple keys at the same time) { prevKey = keyNum; KeyPressedEventHandler tempEvent = KeyPressed; tempEvent(this, new KeyPressedEventArgs(keyNum, KeytoChar(keyNum))); } break; } } if (nbKey == 0) // No key pressed in this pass { // Was there a key pressed before ? if (prevKey != -1) { KeyReleasedEventHandler tempEvent = KeyReleased; tempEvent(this, new KeyReleasedEventArgs(prevKey, KeytoChar(prevKey))); } prevKey = -1; } // Leave time for other processes Thread.Sleep(50); } }
public HotKeySource(string searchKey, KeyPressedEventHandler target) { SearchKey = searchKey; Target = target; }
protected virtual void OnKeyPressed(KeyPressedHandledEventArgs e) { KeyPressedEventHandler handler = KeyPressed; handler?.Invoke(this, e); }
public void Register(Keys key, KeyPressedEventHandler keyPressed) { Register(key); keyPressed += keyPressed; }