2016-05-19 3 views
-2

問題は、私のコードがテキストボックスをちょうど読むことです。私はテキストボックスに変更を加えます。私のコードは一度だけテキストボックスを読み取っています

これは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(); 

    } 
} 

そして - 私は、テキストボックスを読み取ろうとクラスはこれです:私は、私は再びそれを私のボタンをクリックするとReading objR = new Reading(forming);は、テキストボックス読み取りますが、彼らは一度だけ読まれていることを考える

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

私に同じ情報を与えているだけですが、テキストボックスが正しく使用されていることを確認するためにメソッドmAddを追加しました。

テキストボックスで最新のデータを実際に読み取るにはどうすればよいですか?

答えて

0

まずフォーム全体をReadingクラスのコンストラクタに渡すのは残念です。なぜ2つのdouble引数を持つコンストラクタはありませんか? 第二に、あなたはには、フォームを渡す必要があり場合、Form1 forming = new Form1();を削除し、主な理由は、あなたの読書クラスにForm1の新しいインスタンスを渡すとされていないされてReading objR = new Reading(this);

+0

これは単なるテストであり、もっと多くの種類の変数を使用する必要があります。どうもありがとうございました –

0
public partial class Form1 : Form 
{ 
    double tb1, tb2; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     Reading objR = new Reading(); 

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

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

public class Reading 
{ 
    public double Reading(double a,double b) 
    { 
     _tb1= a; 
     _tb2 = b; 
    } 
    public double mAdd(double a, double b) 
    { 
     return a + b; 
    }  
    public double mAdd2() 
    { 
     return _tb1 + _tb2; 
    } 
} 
0

で次の行を置き換えますあなたが変更しているテキストボックスのインスタンス。

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; 
    } 
} 
関連する問題