读书人

keyup事件的执行次数有关问题

发布时间: 2012-09-17 12:06:51 作者: rapoo

keyup事件的执行次数问题?
奇怪的按键操作,我的主窗口和按键事件二个程序都在这里,为什么按一次键J计数会=4.说明按一下键执行了四次keyup事件,不太明白。

C# code
 private void frmModify_Load(object sender, EventArgs e)        {            InsertColumn();                        this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.frmModify_KeyUp);            this.KeyPreview = true; //窗体接收所有键事件            if (Scanner_Open())            {                thread = new Thread(ScannerRd);                thread.IsBackground = true;                thread.Start();                timer1.Enabled = true;            }            else            {                MessageBox.Show("扫描失败");            }                    }


C# code
 private void frmModify_KeyUp(object sender, KeyEventArgs e)        {            j++;            //MessageBox.Show(e.KeyValue.ToString());            switch (e.KeyValue)            {                 case 27:                    //if (dt.Rows.Count > 0)                    //    dt.Rows.RemoveAt(dt.Rows.Count - 1);                    int i = dt.Rows.Count;                    if (i > 0)                        dt.Rows.RemoveAt(i - 1);                    break;                case 37:                case 39:                    Scanner_Trig();                    timer1.Enabled = false;                    break;                default: break;            }                    }


[解决办法]
1.确定一下有没有其它的地方掉用事件。
2.this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.frmModify_KeyUp);注掉试试,
是不是disigner里已经加上这个事件了

[解决办法]
探讨

1.确定一下有没有其它的地方掉用事件。
2.this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.frmModify_KeyUp);注掉试试,
是不是disigner里已经加上这个事件了

[解决办法]
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.frmModify_KeyUp);
删除掉试试
[解决办法]
你试试 this.KeyPreview = true; //窗体接收所有键事件 删掉这个..焦点在本窗体的时候,本来就是接受 所有key 事件的..
如果还是 不行
那么这个 应该是 当 按下键的时候 执行了 2次 keyup ..你 把keyup 换成 keypress;

读书人网 >C#

热点推荐