Your problem here, as I think you've already become aware, is that with Controls on the Form, the Form is never going to have 'Focus, so: the PreViewKeyDown EventHandler is never going to fire.
Use the KeyDown Event instead:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (Control.ModifierKeys == Keys.Control)
{
switch (e.KeyCode)
{
case Keys.Left:
Console.WriteLine("control-left");
button1.PerformClick();
break;
case Keys.Right:
Console.WriteLine("control-right");
break;
}
}
}
I suggest you use Console.WriteLine while debugging rather than using 'MessageBox.Show: it's less "intrusive."
Finally, I'd like to note that simulating a Button Click using a key-combination like this is a very unusual design choice, and one that may confuse users. It would be better, imho, to have a
common method that would be called by both the Button being clicked, and by the key-combination.