TextBox tb = (TextBox)sender与TextBox tb = new TextBox()区别在哪里??
谢谢~~

解决方案 »

  1.   

    你所说的Sender指事件方法中的object sender吧
    它是指引发事件的对象
    TextBox txt = new TextBox()
    txt.click += new Eventnhandle( myClick); textBOx txt2 = new TextBox();
    txt2.click += new EventHandle(myClick)
     private void myClick( object sender ,  enventArgs e )
    {
        if(sender == this.txt)....
        if(sender == this.txt2) ...
    }
      

  2.   

    我看到一段代码:private void textBox_textBoxEmpty_Validating(object sender,system.ComponentModel.CancelEventArgs e)
    {
    TextBox tb = (TextBox)sender;.......}我把这段代码改为TextBox   tb   =   new   TextBox()   就不行了。(TextBox)sender不就是强制转换为textbox类型吗。和TextBox   tb   =   new   TextBox() 有什么区别呢?
      

  3.   

    当然有本质的区别。
    通过(TextBox)Sender进行强制转换,这是把一个已有对象(由参数Sender传入)强制改变其解析方式,则一个object类转换为TextBox。
    在进行这个过程中要求这个object对象的确是一个TextBox对象才可以,并且也不会修改这个对象的任何属性。而new TextBOx()则是完全生成了另外一个对象。这两者是根本不同的。在楼主提供的两个方式的直接结果是tb引用了完全不同的对象。
      

  4.   

    TextBox   tb   =   (TextBox)sender
    //将sender强制转换为 textbox 类型, 赋值给 tb与TextBox   tb   =   new   TextBox()
    //这仅仅是创建一个 textbox 的新例而已.
    所以,结果当然不一样.
    就象int i;与int i=5;一样吗?!
      

  5.   

    清除一下cookie试试.另外,结贴要验证码的吗?!