当TextBox1.text = "";时,发生一个事件但是,当TextBox1.Clear()的时候,不发生上述事件该怎么实现?因为,我想实现这样的功能,当TextBox1.text = ""时,要分情况执行事件,如果能行的话,我把TextBox1.text = "";改成
TextBox1.Clear(),就不执行了

解决方案 »

  1.   

    在 textBox的 onTextChanged 事情中去处理只是我还是不明白你到底想干什么
      

  2.   

     onTextChanged 事件,不过,=""与Clear都要执行的啊我就是想实现:当当TextBox1.text = ""时,要分情况执行事件。有些时候执行,有些时候不执行
      

  3.   

    我就是想实现:当当TextBox1.text = ""时,要分情况执行事件。有些时候执行,有些时候不执行
    那就在OnTextChange事件里判断你所谓的分情况调用不同的方法就行了
      

  4.   


    // 楼主,Clear() 方法实质上是将 Text 属性置为 null;
    public void Clear()
    {
        this.Text = null;
    }// 所以可以判断是不是等于 null 或者 String.Empty 来断定两者的行为
    // 不要使用 IsNullOrEmpty()
      

  5.   

    ontextchanged事件里加判断
    if(textbox1.text=="")
    {
    处理代码
    }
    else
    {
    其他操作
    }
      

  6.   

    不对啊,老兄,Clear() 方法不是将 Text 属性置为 null。而是设置为""或Empty
    我试过
      

  7.   

    我就是想实现:当当TextBox1.text = ""时,要分情况执行事件。有些时候执行,有些时候不执行
    那就在OnTextChange事件里判断你所谓的分情况调用不同的方法就行了
    //TextBox1.text 赋值前,先设定个变量ID来区分事件方法。。或者直接用.Tag来区分先可以
      

  8.   


    // 重新写一个 TextBox,继而重写 Clear()
    class MyTextBox : TextBox
    {
        bool propChange = true;    public new void Clear()
        {
            propChange = false;
            base.Clear();
            propChange = true;
        }
        public event EventHandler TextPropertyChanged;    protected override void OnTextChanged(EventArgs e)
        {
            base.OnTextChanged(e);        if (propChange == true)
            {
                if (TextPropertyChanged != null)
                {
                    TextPropertyChanged(this, e);
                }
            }
        }
    }
      

  9.   

    TextBox.Clear的时候手动引发该事件不行么?
      

  10.   

    10楼提供的方式比较好,有时候为了方便也可以这样
    private void TextBoxClear()
    {
      textBox1.TextChanged -= new System.EventHandler(this.textBox1_TextChanged);
      textBox1.Text = "";
      textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
    }
      

  11.   

    private void OnTextChange(object sender, EventArgs e)
    {
    if((send as TextBox).Text == string.Empty && bDone)
    //dosth 
    }然后在你的
    bDone = false;//Clear之前加上这一名话
    textBox1.Clear()
      

  12.   

    不要使用TextChanged事件,使用KeyUp事件,已测试通过。
      

  13.   

    用一个变量Null 就可以了吧