先上代码:protected void TextBoxTime1_TextChanged(object sender, EventArgs e)
        {
            int time1 = Convert.ToInt32(TextBoxTime1.Text);
            int week1 = Convert.ToInt32(TextBoxWeeks1.Text);
            double y1 = Convert.ToDouble(TextBoxY1.Text);
            double statime1 = time1 * week1 * y1;
            TextBoxStaTime1.Text = Convert.ToString(statime1);
        }
我想这样:通过在一个文本框中输入一个新值,回车,然后后台就读取新值,和另外两个文本框之中的值相互进行一个运算,得到的结果再放到第四个文本框里。这时候,第一个文本框和第四个文本框的值都变成新的值。奇怪的是上面的代码完全没用,输入新值,回车,新值变回旧的值,其他什么都没改变....请问我哪里做错了?应该如何改?哪位大大帮帮我?

解决方案 »

  1.   

    是不是没有设置TextBoxTime1文本框的AutoPostBack=true啊,没设的话后台事件不起作用。
      

  2.   

    应该只能有两种思路吧
    客户端:js来弄
    客户端+服务器:ajax或服务器事件
      

  3.   

    TextChanged是文本改变且失去焦点时发生,你输入按tab键试试,不然就是你代码有问题。
      

  4.   


    奇怪,用了tab之后,不会再跳回旧值了,但是要通过计算来改变的文本框仍然是原来的值不变....
      

  5.   

      private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
            {
               
                if (e.KeyValue == 13)
                {
                    int time1 = Convert.ToInt32(textBox1.Text);
                    int week1 = Convert.ToInt32(textBox2.Text);
                    double y1 = Convert.ToDouble(textBox3.Text);
                    double statime1 = time1 * week1 * y1;
                    textBox4.Text = Convert.ToString(statime1);            }
      

  6.   

    建议用JS
    用文本框的onblur事件,当第一个文本框失去焦点时,计算值放到第四个文本框中去.
      

  7.   

    WPF就知道如何做
    不需要第二和第三个文本框的你有没debug? 你确定这个事件有触发好象控件一个ispostback的属性要设置
      

  8.   


    <asp:TextBox runat="server" ID="TextBoxTime1" Width="100px" onTextChanged="TextBoxTime1_TextChanged1" AutoPostBack="true"></asp:TextBox>
      

  9.   

    已经解决了,改了两个属性AutoPostBack=trueEnableViewState=false改了一个函数Page_load中最前面加上IsPostBack判断,然后用全局变量取TextBox的值,到1楼的代码里,替换掉几个TextBox直接算,然后赋值给第四个文本框,这样就行了