我想用下面的方式来实现
private void frmDProviderEdit_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyValue == 13 )
            {
                SendKeys.Send ("{TAB}"); 
            }
        }使用的是窗体的KeyUp事件,可以做到回车切换焦点,但是这样当焦点到了按钮上时,回车也不起作用
请问,该怎么加个判断,当焦点在按钮上时,回车恢复成点击按钮作用?请指点。。

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using UDMS200.businessDig;
    using System.Data.SqlClient;namespace UDMS200.test
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
            }      
            /// <summary>
            /// 按回车键切换焦点
            /// </summary>
            /// <param name="msg"></param>
            /// <param name="keyData"></param>
            /// <returns></returns>
            protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            {
                if (keyData == Keys.Enter)
                {
                    System.Windows.Forms.SendKeys.Send("{tab}");
                    return true;
                }            return base.ProcessCmdKey(ref msg, keyData);
            }         private void button1_KeyUp(object sender, KeyEventArgs e)
            {
                MessageBox.Show("aaaaaaaa");
                
            }      }
    }
      

  2.   

    这样按钮上的msssagebox成了死循环了,按一下回车就会出现新的messagebox
    我要的只是在按钮上按回车键执行一次按钮click事件。。
      

  3.   

            protected override void OnKeyPress(KeyPressEventArgs e)
            {
                if (e.KeyChar == 13)
                { SelectNextControl(this.ActiveControl, true, true, true, true); }
                base.OnKeyPress(e);
            }        private void Form1_Load(object sender, EventArgs e)
            {
                this.KeyPreview = true;
            }
     
      

  4.   

    按照pgdoryoku的方法解决问题,多谢两位朋友,结贴