Simulate a KeyPress in C# code
Hi,
I am trying to develop a text editor in C#. I want it to record and replay macros. This is how I am trying to do it:
The Bool MacroRecording keeps track of whether it is usual business.. or recording a macro. Pressing ^Q starts recording a macro.. and ^Q again stops it... the set of key press events are stored in a list MacroKeyList .. and on ^P , the recorded list of keys should be played..
I am able to record the MacroKeyList. On ^P, it tries to play the set of keys.. but nothing happens !! It does not reflect on the text box.
Possibly something wrong in the way I am trying to play the recorded macro. Could you please correct ?
Here is my code...
private void MyRichTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control)
{
if (e.KeyCode == Keys.Q)
{
if (MacroRecording)
MacroRecording = false;
else
{
MessageBox.Show("Start Recording");
MacroKeyList.Clear();
MacroRecording = true;
}
}
else if (e.KeyCode == Keys.P)
{
if (MacroKeyList.Count > 0)
{
foreach (KeyPressEventArgs a in MacroKeyList)
OnKeyPress(a);
}
}
}
}
private void MyRichTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (MacroRecording) MacroKeyList.Add(e);
}