winform中的enter和esc按键监控

         当前textbox1按回车到textbox2中去,按esc退出当前窗口

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            textBox1.TabIndex = 1;

            textBox2.TabIndex = 2;

            this.textBox1.KeyPress += new System.Windows.Forms.KeyEventHandler(this.ListKey);

            this.textBox2.KeyPress += new System.Windows.Forms.KeyEventHandler(this.ListKey);

        }

        private void ListKey(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                this.SelectNextControl(this.ActiveControl, true, true, true, true);
            }

            if (e.KeyCode == Keys.Escape)
            {
                this.Close();           
            }
        }

       
    }

 

wince中对activecontrol好像没有定义,用sender as control来代替

 

 

private void ListKey(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                //this.SelectNextControl(this.ActiveControl, true, true, true, true);
                this.SelectNextControl(sender as Control, true, true, true, true);
            }
            if (e.KeyCode == Keys.Escape)
            {
                this.Close();           
            }

 

也可以直接对"windows 窗体设计器生成的代码"里面的值做直接修改.然后加上listkey的方法

 

 

下面是引用别人的文章

2009年08月10日 星期一 09:53

tabindex 属性 -- 代表使用"Tab"键的遍历顺序

使用tabIndex属性可以设置TAB键在控件中的移动顺序。

把控件的tabIndex属性设成1到32767的一个值,就可以把这个控件加入到TAB键的序列中。

这样,当浏览者使用TAB键在网页控件中移动时,将首先移动到具有最小tabIndex属性值的控件上,最后在具有最大tabIndex属性值的控件上结束移动。

如果有两个控件的tabIndex属性相同,则以控件在html代码中出现的顺序为准。

默认的tabIndex属性为 0 ,将排列在在所有指定tabIndex的控件之后。

而若把tabIndex属性设为一个负值(如tabIndex="-1"),那么这个链接将被排除在TAB键的序列之外。

如果最初选择了[Tab]键,带这个输入栏的网页会将光标移动到firstName栏。

在给tabIndex特性赋值时,要留意几个问题。下面是几个赋值规则:

带0值tabIndex的元素根据源代码(或默认页面行为)进行排序。
大于0的tabIndex值设定其tab顺序。所有带正tabIndex值的元素出现在所有带0 tabIndex值的元素之前。
如果你犯了一个错误,把同一个tabIndex赋予给多个元素,像其它元素一样,它们会以一个0值tabIndex进行处理。
将tabIndex赋值为-1,则在使用[Tab]键时,此元素被忽略。注意:如果使用-1值时,onfocus与onblur事件仍被启动。
tabIndex的值可为0至32767之间的任意数字

你可能感兴趣的:(C#)