c#:
this.tbx1.TextChanged += new EventHandler(tbx1_TextChanged);
private void tbx1_TextChanged(object sender, EventArgs e)
        {
            //执行代码
            this.tbx1.TextChanged -= new EventHandler(tbxPassWord_TextChanged);
        }
我想达到以上效果,但是这样写不行,请教一下。
意思就是TextChanged事件只在第一次触发后就取消订阅该事件
急!

解决方案 »

  1.   

    加个变量试试private boolean isChanged; 
    private void tbx1_TextChanged(object sender, EventArgs e) 
            { 
                if(!isChanged)
                {       //功能
                           isChanged=true
                   }     
               
            } 
      

  2.   

    this.tbx1.TextChanged += new EventHandler(tbx1_TextChanged); this.tbx1.TextChanged -= new EventHandler(tbxPassWord_TextChanged); 
    对比一下这两句,你真的知道你要什么效果吗
      

  3.   

    this.tbxPassWord.TextChanged -= new EventHandler(tbxPassWord_TextChanged);
      

  4.   

    我是想第一次执行后,再改变tbx1的值也不会和服务器交互。
    不过这个方法确实有用,给我个提示,谢谢!
      

  5.   

    写错了
    应该是
    this.tbx1.TextChanged += new EventHandler(tbx1_TextChanged); 
    private void tbx1_TextChanged(object sender, EventArgs e) 
            { 
                //执行代码 
                this.tbx1.TextChanged -= new EventHandler(tbx1_TextChanged); 
            }
      

  6.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace WindowsApplication5
    {
        public partial class Form1 : Form
        {
            private EventHandler m_handler = null;        public Form1()
            {
                InitializeComponent();
            }        /// <summary>
            /// 窗体Load时实例化事件
            /// </summary>
            /// <param name="e"></param>
            protected override void OnLoad(EventArgs e)
            {
                base.OnLoad(e);
                m_handler = new EventHandler(textBox1_TextChanged);
                textBox1.TextChanged += m_handler;
            }        private void textBox1_TextChanged(object sender, EventArgs e)
            {
                TextBox txtbox = sender as TextBox;            MessageBox.Show("事件存在");
                if (m_handler != null)
                {
                    textBox1.TextChanged -= m_handler;
                    MessageBox.Show("已经取消掉");
                }
            }
        }
    }VS2005通过!