Ok, more exactly, you need one handler for all buttons representing a keyboard, but you still need information on what exactly key was pressed. Also, you need to use better syntax -- the auto-generated syntax is gravely obsolete (you're interested in v.4.0, huh?) and inferior relative the lambda syntax.
The code will be something like this:
for (Button button in KeyboardButtons)
button.Click += (sender, args) => { ClickHandler((Button)sender); };
void ClickHandler(Button sender) {
string text = sender.Text;
Debug.Assert(text.Length > 0);
char key = text[1];
}
..