Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我的代码只读取一次文本框_C#_Textbox - Fatal编程技术网

C# 我的代码只读取一次文本框

C# 我的代码只读取一次文本框,c#,textbox,C#,Textbox,问题是,我的代码只是第一次读取文本框,当我对文本框进行任何更改时,它都不会读取新的文本框 这是带有2个文本框的表单代码 public partial class Form1 : Form { double tb1, tb2; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) {

问题是,我的代码只是第一次读取文本框,当我对文本框进行任何更改时,它都不会读取新的文本框

这是带有2个文本框的表单代码

public partial class Form1 : Form
{
   double tb1, tb2;

    public Form1()
    {
        InitializeComponent();

    }

    private void button1_Click(object sender, EventArgs e)
    {
       Form1 forming = new Form1();
        Reading objR = new Reading(forming);

        tb1 = double.Parse(textBox1.Text);
        tb2 = double.Parse(textBox2.Text);


       textBox4.Text= objR.mAdd(tb1,tb2).ToString();
       textBox5.Text = objR.mAdd2().ToString();

    }
}
我试图阅读文本框的课程是:

class Reading
{
    double _tb1, _tb2;



    public Reading(Form1 form)
    {
      this._tb1 = double.Parse(form.textBox1.Text);
      this._tb2 = double.Parse(form.textBox2.Text);

    }
    public double mAdd(double a, double b)
    {

        return a + b;
    }      


     public double mAdd2()
    {
        return _tb1 + _tb2;
    }
 }
我认为,
readingobjr=新的阅读(形成)
读取文本框,但它们只读取一次,当我再次单击我的按钮时,它只是给我相同的信息,我添加了方法mAdd以确保文本框被正确使用


如何才能真正读取文本框中的最新数据?

首先,将整个表单传递给
Reading
类的构造函数太过分了。为什么不让一个构造函数有两个
double
参数呢?
其次,如果必须传递表单,则删除
Form1 forming=new Form1()并将下一行替换为
读取objR=新读取(本)

主要原因是您正在将Form1的新实例传递给reading类,而不是正在更改文本框的实例

只是为了补充ffa的答案

这样,读取类'mAdd和mAdd2的返回值将相同

private void button1_Click(object sender, EventArgs e)
{
    tb1 = double.Parse(textBox1.Text);
    tb2 = double.Parse(textBox2.Text);
    Reading objR = new Reading(tb1, tb2);
    textBox4.Text= objR.mAdd(tb1,tb2).ToString();
    textBox5.Text = objR.mAdd2().ToString();
}


class Reading
{
    double _tb1, _tb2;

    public Reading(string tb1, string tb2)
    {
        this._tb1 = double.Parse(tb1);
        this._tb2 = double.Parse(tb2);

    }
    public double mAdd(double a, double b)
    {
        return a + b;
    } 

    public double mAdd2()
    {
        return _tb1 + _tb2;
    }
}

这只是我做的一个测试,我需要使用更多类型的变量。非常感谢你
private void button1_Click(object sender, EventArgs e)
{
    tb1 = double.Parse(textBox1.Text);
    tb2 = double.Parse(textBox2.Text);
    Reading objR = new Reading(tb1, tb2);
    textBox4.Text= objR.mAdd(tb1,tb2).ToString();
    textBox5.Text = objR.mAdd2().ToString();
}


class Reading
{
    double _tb1, _tb2;

    public Reading(string tb1, string tb2)
    {
        this._tb1 = double.Parse(tb1);
        this._tb2 = double.Parse(tb2);

    }
    public double mAdd(double a, double b)
    {
        return a + b;
    } 

    public double mAdd2()
    {
        return _tb1 + _tb2;
    }
}