일(job)/MS(Microsoft)
[C#, Winform, 윈폼] 윈도우 단축키 바인딩, 콤보박스, ComboBox
뽀&쏭
2016. 1. 7. 13:35
private void Form1_Load(object sender, EventArgs e)
{
foreach (System.Windows.Forms.Keys key in Enum.GetValues(typeof(System.Windows.Forms.Keys)))
{
comboBoxKeys.Items.Add(new { Value = key, Description = GetDescription(key) });
}
comboBoxKeys.DisplayMember = "Description";
}
private string GetDescription(System.Windows.Forms.Keys key)
{
switch(key)
{
case Keys.OemPipe:
return "Better oem pipe description";
case Keys.HanjaMode:
return "Ninja mode";
default:
return key.ToString(); // default name
}
}
일반적으로 사용될법한 단축키를 재정의 해봤음...무식하지만 제일 확실한 방법으로 정의ㅋ
if (key.ToString().Equals("Back") || key.ToString().Equals("Tab") || key.ToString().Equals("Pause") ||
key.ToString().Equals("Escape") || key.ToString().Equals("Space") || key.ToString().Equals("PageUp") ||
key.ToString().Equals("Next") || key.ToString().Equals("End") || key.ToString().Equals("Home") ||
key.ToString().Equals("Left") || key.ToString().Equals("Up") || key.ToString().Equals("Right") ||
key.ToString().Equals("Down") || key.ToString().Equals("PrintScreen") || key.ToString().Equals("Insert") ||
key.ToString().Equals("Delete") || key.ToString().Equals("D0") || key.ToString().Equals("D1") ||
key.ToString().Equals("D2") || key.ToString().Equals("D3") || key.ToString().Equals("D4") ||
key.ToString().Equals("D5") || key.ToString().Equals("D6") || key.ToString().Equals("D7") ||
key.ToString().Equals("D8") || key.ToString().Equals("D9") || key.ToString().Equals("A") ||
key.ToString().Equals("B") || key.ToString().Equals("C") || key.ToString().Equals("D") ||
key.ToString().Equals("E") || key.ToString().Equals("F") || key.ToString().Equals("G") ||
key.ToString().Equals("H") || key.ToString().Equals("I") || key.ToString().Equals("J") ||
key.ToString().Equals("K") || key.ToString().Equals("L") || key.ToString().Equals("M") ||
key.ToString().Equals("N") || key.ToString().Equals("O") || key.ToString().Equals("P") ||
key.ToString().Equals("Q") || key.ToString().Equals("R") || key.ToString().Equals("S") ||
key.ToString().Equals("T") || key.ToString().Equals("U") || key.ToString().Equals("V") ||
key.ToString().Equals("W") || key.ToString().Equals("X") || key.ToString().Equals("Y") ||
key.ToString().Equals("Z") || key.ToString().Equals("F1") || key.ToString().Equals("F2") ||
key.ToString().Equals("F3") || key.ToString().Equals("F4") || key.ToString().Equals("F5") ||
key.ToString().Equals("F6") || key.ToString().Equals("F7") || key.ToString().Equals("F8") ||
key.ToString().Equals("F9") || key.ToString().Equals("F10") || key.ToString().Equals("F11") ||
key.ToString().Equals("F12") || key.ToString().Equals("NumLock") || key.ToString().Equals("Scroll")
)
{
cboWindowKey.Items.Add(new { Value = key, Description = GetDescription(key) });
//cboWindowKey.Sorted = true;
}
출처 : http://stackoverflow.com/questions/9999604/pretty-key-names-in-c-sharp-forms