簡體   English   中英

將代碼放在C#中的按鈕后面

[英]Putting a code behind a button in 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
我不明白為什么它不起作用。 我什至嘗試了幾種不同的方法。

這是一個范圍問題。 您可以在構造函數Form2()定義myAdd ,這意味着它僅在該范圍內可用:在它消失之后,只有構造函數可以使用它。

如果要保留變量,請將其移至類范圍。

我建議閱讀這篇文章

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相同的問題

myAdd在本地范圍內為Form2構造函數。 改為為課程聲明:

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

應該也可以做這樣的事情:

 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());
       }
}

檢查這是否適合您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM