页面上放一个TextBox1和TextBox2控件:
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" ontextchanged="TextBox1_TextChanged"></asp:TextBox>
        <br />
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    
    </div>
    </form>
</body>并在TextChanged事件里写了如下代码
cs:
protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
        Response.Write("<script>alert('改变了TextBox1的值')</script>");
    }如果是在TextBox1中输入不同的值时会激发TextChanged事件,但是如果是从TextBox1的自动完成的下拉框选出不同值时就不会激发TextChanged事件,怎么回事??

解决方案 »

  1.   

    TextChanged这个事件是焦点改变时发生的吧
      

  2.   

    选择时并不是通过在文本框中输入新内容造成文本内容改变,也就不会触发TextChanged事件了。
      

  3.   

    楼主你可以这样,你选了了内容,然后你让光标到textbox中,然后再离开,我想肯定会执行text_changed事件的
      

  4.   

    原因很简单,你选择了以后,textbox的text属性没有被赋值给你选的内容
      

  5.   

    没注意,
    textbox会不会只监测来自输入的内容变化,而忽略其它动作,如粘贴等
      

  6.   

    粘贴,和从缓存中选择都不会触发change事件,
    最好是用失去焦点时触发事件。
      

  7.   

    失去焦点  触发 Leave事件
    文本发生变化   触发  TextChanged事件  不过这好像只对手动输入的有效
      

  8.   

    看错了   楼上是Winform的  不好意思
      

  9.   

    textchange  要 在文本框中输入 与当前值不相同 的 值 才 会认为 改变了。