使用如下方法:
this.ComFlower.TextChanged -= new System.EventHandler(this.ComFlower_TextChanged);
我经常遇到类似的问题。
先撤销事件,再进行操作,之后再恢复事件。从而避免引发多余的事件。

解决方案 »

  1.   

    没用,
    private void ComFlower_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
     
      if(e.KeyValue!=40&&e.KeyValue!=38)//e.KeyValue!=13&&
         this.ComFlower.TextChanged += new System.EventHandler(this.ComFlower_TextChanged);   
     if(e.KeyValue==40&&e.KeyValue==38)
     this.ComFlower.TextChanged -= new System.EventHandler(this.ComFlower_TextChanged); }第一次触发,TextChanged后,用你的方法还是不能撤销
      

  2.   

    //看这样行不:
    while(this.ComFlower.TextChanged != null) 
    {
        this.ComFlower.TextChanged -= new System.EventHandler(this.ComFlower_TextChanged);
    }