我有一个简单的问题。我在Form2中创建了一个名为“MyObject”的类,其中包含两个变量。按下按钮,Form2中的变量将被更改。现在我的问题是如何在Form1中检索MyObject?这是我的示例代码:
Form1中
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(this);
f.ShowDialog();
??????? (how can I retrieve Myobject here?????)
}
窗体2
public class MyObject
{
public int Value1 { get; set; }
public int Value2 { get; set; }
}
public Form2(Form1 frm1)
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MyObject obj = new MyObject();
obj.Value1 = 102;
obj.Value2 = 50;
}
谢谢大家
答案 0 :(得分:1)
这样做
Form1中
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(this);
f.ShowDialog();
MyObject mo = f.GetMyObject;
}
窗体2
public Form2(Form1 frm1)
{
InitializeComponent();
}
public MyObject GetMyObject
{
get
{
return obj;
}
}
MyObject obj;
private void button1_Click(object sender, EventArgs e)
{
obj = new MyObject();
obj.Value1 = 102;
obj.Value2 = 50;
}
为MyObject
public class MyObject
{
public int Value1 { get; set; }
public int Value2 { get; set; }
}
答案 1 :(得分:1)
您不应在MyObject
内定义Form2
。你应该把它放在它自己的文件中。您几乎总是希望每个类都有自己的文件。
你还应该给MyObject
一个更好的名字;这些东西更能描述它实际上做什么/持有什么。
最后,要实际传递数据,一种简单有效的方法就是在Form2
上创建一个属性:
public MyObject PropertyName {get; private set;}
(不要忘记将属性重命名为更好的东西。)
然后,您可以通过说Form2
ProperyName = new MyObject();
内进行设置
然后,您可以使用Form1
从ShowDialog
(致电{1}}后)访问该媒体资源。