1

私は2つのフォームを持っています。

最初のフォームから2番目のフォームを呼び出します...2番目のフォームでいくつかの計算を行い、2番目のフォームを閉じた後に最初のフォームで結果を取得したいと思います。

最初のフォームコード

public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm
{
    String s = "";
    public XtraForm1()
    {
        InitializeComponent();
    }

    private void simpleButton1_Click(object sender, EventArgs e)
    {
        s = textEdit1.Text;
        XtraForm2 x = new XtraForm2(ref s);

        x.ShowDialog();
        MessageBox.Show(s); // Here I want to get the data from 2nd form.
    }
}

2番目のフォームコード

public partial class XtraForm2 : DevExpress.XtraEditors.XtraForm
{
    string s2 = "";
    public XtraForm2(ref string s1)
    {
        InitializeComponent();
        s2 = "hai";
        s1 = s2;
    }

    private void simpleButton1_Click(object sender, EventArgs e)
    {
        // here i do some operations and i want to store it in variable s1 so that i will get the result in 1st form.
        this.Close();
    }
}
4

5 に答える 5

0

プロパティを使用できますよね?パラメータを Ref で渡したいのはなぜですか?

Button_click(){
    using(var form2 = new Form2())
    {
        form2.Property = initialValue;
        form2.ShowDialog();
        MessageBox.Show(form2.Property);
    }
}

get set プロパティを使用する代わりにyou can pass the value using constructorget the value from property.

于 2012-07-19T12:11:24.367 に答える
0

2nd Form でパブリック フィールド/プロパティを作成します。

//public property
public string Data { get;set;}

private void simpleButton1_Click(object sender, EventArgs e)
{
   Data="Something you want to return back to 1st Form";
   this.Close();
}

第1形態では、

private void simpleButton1_Click(object sender, EventArgs e)
{
  s = textEdit1.Text;
  XtraForm2 x = new XtraForm2(ref s);

  x.ShowDialog();
  MessageBox.Show(x.Data); 
}
于 2012-07-19T12:17:13.257 に答える
0

できることはたくさんあります。

しかし、最も簡単なのは、2 番目のフォームでプロパティを作成し、そこに結果を入れて、最初のフォームから呼び出すことですShowDialog()MessageBox.Show(x.MyProperty);

于 2012-07-19T12:08:18.787 に答える