0

私は2つのフォームを持っています1.form1ボタンをクリックしてform2開き、いくつかの情報を追加しますform2

    private void button1_Click(object sender, EventArgs e)
    {
        string Name = TxtNewName.Text;
        string City = TxtNewCity.Text
    }

コンストラクタでフォームを開いています

   private void openForm2_Click(object sender, EventArgs e)
    {
        Form2 newform = new Form2();
        newform.Show();
    } 

Nameこれを閉じたときに、これと変数を以前に開いていたフォームに転送したいのですがcity、フォーム1の同じ名前のフィールドを持つすでに開いているフォームで2つの値が更新されます。助けてください..

4

3 に答える 3

2

2 番目のフォームで 2 つのパブリック プロパティを定義する

    public string GetName { get {return TxtNewName.Text;} }
    public string GetCity { get {return TxtNewCity.Text;} }

2番目のフォームを呼び出した後、それらにアクセスできます

     Form2 form2 = new Form2();
     form2.ShowDialog();

     string name = form2.GetName;
     string city = form2.GetCity;

編集: ...そして、form2を閉じた後、form1の名前と都市を含むテキストボックスのテキストプロパティを直接設定したい場合

this.Text = form2.GetName;
this.city = form2.GetCity;
于 2012-12-28T11:57:51.043 に答える
1

form2 の値を保持するプロパティを公開する必要があります

public string Name { get { return TxtNewName.Text; } }
public string City { get { return TxtNewCity.Text; } }

そして

private void openForm2_Click(object sender, EventArgs e) 
{ 
   Form2 newform = new Form2(); 
   newform.ShowDialog(); 
   var city = newform.City;
   var name = newform.Name;
}
于 2012-12-28T11:57:57.827 に答える
0

最初のフォームに値を渡す必要があるため、最初のフォームを取得するパラメーター コンストラクターをお勧めします。

渡す必要のある値を取得するために必要なプロパティを設定するForm1

Form2 newform = new Form2(this); // passing instance of Form1
newform.Show();

これForm1で、必要な値にアクセスして割り当てることができます。

于 2012-12-28T12:01:00.370 に答える