 <p>You could do this with a bit simpler logic using <code>KeyPress</code> instead, like this:</p> <pre><code>string buffer = ""; //buffer to store what the user typed: n, no, not, etc... void gkh_KeyPress(object sender, KeyPressEventArgs e) { buffer += e.KeyChar; //add key to the buffer, then check if we've made progress if (buffer.IndexOf("note") &gt; -1) { this.Show(); //"notes" matched completely buffer = ""; //reset for another run } else if ("note".IndexOf(buffer) != 0) { buffer = ""; //Another key not in sequence was hit } } </code></pre>