C# 我的代码只读取一次文本框
问题是,我的代码只是第一次读取文本框,当我对文本框进行任何更改时,它都不会读取新的文本框 这是带有2个文本框的表单代码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) {
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;
}
}