I've had to go through this before too. I'm not sure about the C# calls and event names, but in
VB it was the keypress event that did the trick. Just get the time of the keypress at the beginning of the command. Compare this to a form level variable you saved the last time a key was pressed. If the strokes occur fast enough, concatenate them to another form level variable, otherwise make the reinitialize it to the key that was pressed. Use this string to find the next one with a greater list index than the one currently selected. Hope this helps.
Wes