using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace Counter
{
    public partial class Counter : Form
    {
        public Counter()
        {
            InitializeComponent();
        }        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }        private void btnCount_Click(object sender, EventArgs e)
        {
            if (txtNum1.Text == "")
            {
                MessageBox.Show("请输入第一个数!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            }
            else if (cboOperation.Text == "")
            {
                MessageBox.Show("请输入运算符!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            }
            else if (txtNum2.Text == "")
            {
                MessageBox.Show("请输入第二个数", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            }
            else
            {
  //如何调用txtResult_TextChanged方法
            
            }
        }        private void txtResult_TextChanged(object sender, EventArgs e)
        {
            double num1 = double.Parse(txtNum1.Text);
            double num2 = double.Parse(txtNum2.Text);
            if (cboOperation.Text == "+")
            {
                MessageBox.Show("和是" + (num1 + num2));
            }        }
    }
}如何在else里  //如何调用txtResult_TextChanged方法问题简单,但小弟初学,忘能指教!

解决方案 »

  1.   

    txtResult_TextChanged(sender, e);这样就能调用,问题是:这样有意义么?
      

  2.   

    txtResult_TextChanged(sender, e); 或者txtResult_TextChanged(null, null); 都行,反正参数你也不用。。
      

  3.   

    这个代码在逻辑上好象有点问题。
    先不说TextChanged是个事件。当那个控件的时间触发时候就会执行。
    当然就把当函数来调用也是可以的。你NEW个object sender, EventArgs e
    再调用 txtResult_TextChanged(sender, e) 但是从你的代码上来看你的意思就是要检查是否为空。所以,建议再从新考虑下实现的方法。这个不象是哪个语言的问题,还是考虑下设计的逻辑吧。
      

  4.   

    要说到逻辑上的问题,都不知道说什么好了:
    txtResult应该是用来显示结果的吧?为什么偏偏要处理它的TextChanged事件?还用MessageBox显示?从逻辑上来说就是两个字:荒唐。
      

  5.   

    我改成这样了
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace Counter
    {
        public partial class Counter : Form
        {
            public Counter()
            {
                InitializeComponent();
            }        private void btnExit_Click(object sender, EventArgs e)
            {
                this.Close();
            }        private void btnCount_Click(object sender, EventArgs e)
            {
                if (txtNum1.Text == "")
                {
                    MessageBox.Show("请输入第一个数!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                }
                else if (cboOperation.Text == "")
                {
                    MessageBox.Show("请输入运算符!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                }
                else if (txtNum2.Text == "")
                {
                    MessageBox.Show("请输入第二个数", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                }
                else
                {
                    double num1 = double.Parse(txtNum1.Text);
                    double num2 = double.Parse(txtNum2.Text);
                    if (cboOperation.Text == "+")
                    {
                        double sum = num1 + num2;
                        MessageBox.Show("和是" + sum);
                    }
                    txtResult_TextChanged(sender, e); 
                }
            }        private void txtResult_TextChanged(object sender, EventArgs e)
            {
                        }
        }
    }我只是想在txtResult的Text值为sum
      

  6.   

    我猜你的本意,看看对不对:两个TextBox输入运算数,一个输入运算符,点击Button后在另一个TextBox,也就是txtResult中显示结果,对不对?可以写一个验证方法,在输入运算数的两个TextBox的TextChanged事件中验证,点击Button后取数运算并将结果赋给texResult,鉴于txtResult的作用,甚至可以指定其ReadOnly属性为true。前面的我可能说得过激,但你的确是需要思考一下。
      

  7.   

    else后面的那个块中,难道不能这样:           { 
                    double num1 = double.Parse(txtNum1.Text); 
                    double num2 = double.Parse(txtNum2.Text); 
                    if (cboOperation.Text == "+") 
                    { 
                        double sum = num1 + num2;
                        txtResult.Text="和是" + sum;
                        //MessageBox.Show("和是" + sum); 
                    } 
                    //txtResult_TextChanged(sender, e); 
                } 
      

  8.   


                    double num1 = double.Parse(txtNum1.Text);
                    double num2 = double.Parse(txtNum2.Text);
                    if (cboOperation.Text == "+")
                    {
                       
                       string sum = Convert.ToString((num1+num2));
                       txtResult.Text = sum;
                    }谢谢,我这样搞定了。
    没事,的确自己逻辑上还是很落后,才接触语言,没事啦,我先天没有,后天慢慢锻炼嘛!呵呵