当在Combox控件 按下回车键后,焦点转移到下一控件,我使用SendKeys.Send("{TAB}");但是当 Combox控件展开下拉框后,按下回车键,它却跳了两个控件,请问有什么好的方法吗?

解决方案 »

  1.   

    在Enter事件下写
    page.ActionControl = 下一控件名;
      

  2.   

    当在Combox控件 按下回车键后,焦点转移到下一控件,我使用SendKeys.Send("{TAB}");但是当 Combox控件展开下拉框后,按下回车键,它却跳了两个控件,请问有什么好的方法吗?可能是你的TAB键索引没有顺序!
      

  3.   

    同意JSIFENG(有没有一缕阳光给我啊)所说,查查你的控件索引号(TabIndex属性)。很多时候是不会去注意这个问题的,所以一按TAB键,就不知道跑到哪个控件上去了。  ^_^
      

  4.   

    1 按顺序设置各控件的TabIndex属性,他代表了你的控件Tab顺序.
    2 设置窗体的KeyPreview值为True.
    3 为窗体的KeyPress之类的事件加代码:private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            SendKeys.Send("{Tab}");
        }
    }好了.完事了. 突然有点留恋VB的对象(控件)数组.
      

  5.   

    设置tableindex ,然后再看别的.
      

  6.   

    来晚了,这是一前辈给的代码,很好用的:::把下面的代码放到窗体中可以实现按回车键跳到下一个可选的TabIndex控件:
    protected override bool ProcessDialogKey(Keys keyData)
    {
    if (keyData == Keys.Enter && !(this.ActiveControl is Button))
    {
    keyData = Keys.Tab;
    }
    return base.ProcessDialogKey(keyData);
    }
    如果想对Button也执行这个规则,可以把!(this.ActiveControl is Button)去掉.