2015/08/24(Mon) 11:13:39 編集(投稿者)
Hongliangさんの話し通り、処理そのもの(Action)を辞書化(Dictionary)にしてもいいですし、
単にKeyCodeを実際の処理に対応する値(enum等)に置き換えるだけでもいいです。
以下のコードは実行チェックしてないので間違ってたらすいません。
enum ActionEnum
{
None,
Open,
Close,
Send,
Receive
}
Dictionary<Keys, ActionEnum> ActionEnums = new Dictionary<Keys, ActionEnum>();
// コンストラクタ
public Form1()
{
ActionEnums.Add(Keys.O, ActionEnum.Open);
ActionEnums.Add(Keys.C, ActionEnum.Close);
ActionEnums.Add(Keys.S, ActionEnum.Send);
ActionEnums.Add(Keys.R, ActionEnum.Receive);
}
// KeyDown
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
ActionEnum ActionEnum;
ActionEnums.TryGetValue(e.KeyCode, out ActionEnum);
if(ActionEnum == ActionEnum.None) return;
switch(ActionEnum) // 選択肢が静的に決まる場合はif()文よりswitch()文の方が高速
{
case ActionEnum.Open: Open(); break;
case ActionEnum.Close: Close(); break;
case ActionEnum.Send: Send(); break;
case ActionEnum.Receive: Receive(); break;
}
}