日期:2014-05-18  浏览次数:20990 次

C#中上下左右键切换控件焦点
寻用上下左右键切换控件焦点的方法,winform里面有textbox combobox radiobutton等其他控件

------解决方案--------------------
不建议把左右都用来切换焦点,否则你在textbox 里面改变光标所在字符位置就做不到了。
C# code

        private void textbox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Enter)
            {
                e.SuppressKeyPress = true;
                System.Windows.Forms.SendKeys.Send("{Tab}");
            }
            if (e.KeyCode == Keys.Up)
            {
                e.SuppressKeyPress = true;
                System.Windows.Forms.SendKeys.Send("+{Tab}");
            }
        }

------解决方案--------------------
还是有简便的方法的。
仅需在母窗体类上加入:
C# code
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            Keys key = (keyData & Keys.KeyCode);

            if (key == Keys.Down)
            {
                SendKeys.Send("{Tab}");
                return true;
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }