在C#中将代码放在按钮后面

时间:2012-02-23 16:08:55

标签: c#

我正在尝试在添加按钮后添加代码,我的代码就是这样:

class CalculateValues
    {
        private int _num1;
        private int _num2;


        public int Num1
        {
            get
            {
                return _num1;
            }
            set
            {
                _num1 = value;
            }
        }
        public int Num2
        {
            get
            {
                return _num2;
            }
            set
            {
                _num2 = value;
            }
        }
        public virtual int calculate()
        {
            return _num1 + _num2;

        }
    }

以下是包含按钮的其他代码:

public partial class Form2 : Form
    {
        public Form2()
        {
            CalculateValues myAdd = new CalculateValues();
            MulitplyValues Add = new MulitplyValues();
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            int total = myadd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));    
            MessageBox.Show(total.ToString());

        }

但每次它告诉我'myAdd' does not exist in the current context
我不明白为什么它不起作用。我甚至尝试了几种不同的方式。

4 个答案:

答案 0 :(得分:3)

这是一个范围问题。您在构造函数myAdd中定义Form2(),这意味着它只能在范围中使用:只有构造函数可以使用它,之后它就消失了。

如果您希望变量保持不变,请将其移至类范围。

我建议阅读this article

答案 1 :(得分:1)

myAdd移至类范围。在您的代码中,myAdd“只存在”ctor范围内。

public partial class Form2 : Form
    CalculateValues myAdd; < ====
    MulitplyValues Add;    < ====
    public Form2()
    {   
        myAdd = new CalculateValues();   < ====             
        Add = new MulitplyValues();      < ====
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {

        int total = myadd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));    
        MessageBox.Show(total.ToString());

    }
}

Add

相同的问题

答案 2 :(得分:1)

myAdd本地作用于Form2构造函数。相反,为该类声明它:

public partial class Form2 : Form
{
    CalculateValues myAdd;
    public Form2()
    {
        myAdd = new CalculateValues();
        MulitplyValues Add = new MulitplyValues();
        InitializeComponent();
    }

答案 3 :(得分:1)

应该能够做到这样的事情:

 public Form2()
{
       CalculateValues myAdd = new CalculateValues();
       MulitplyValues Add = new MulitplyValues();
       InitializeComponent();
       button.Click += (o,e)=> {
              int total = myadd.Add(int.Parse(textBox1.Text), int.Parse(textBox2.Text));    
              MessageBox.Show(total.ToString());
       }
}

检查这是否适合您。