DJ메탈짱™의 Free Style

[C#, Winform, 윈폼] 윈도우 단축키 바인딩, 콤보박스, ComboBox 본문

일(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