1

我有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.
    }
}

第二种形式代码

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

您可以创建类似于模型的类并声明所有变量并使用 set 来编辑数据并获取它。

Public class cs1
{
   private int m_id=0;

public int ID
{
    get
    {
        return m_id;
    }
    set
    {
        m_id = value;
    }
}

}
于 2012-07-19T14:55:40.693 回答
0

另一种可能性是使用静态变量:

public static string _form2Data = null;

private void simpleButton1_Click(object sender, EventArgs e)   
{   
    _form2Data = "something";     
    this.Close();   
}
于 2012-07-19T12:21:36.187 回答
0

你可以做很多事情。

但最简单的方法是在您的第二个表单上创建一个属性,将结果放在那里,然后从您的第一个表单中调用ShowDialog()MessageBox.Show(x.MyProperty);

于 2012-07-19T12:08:18.787 回答
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();
}

在第一种形式中,

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

你可以使用属性,对吧?为什么要通过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 回答