从其他形式读取数据

时间:2013-06-01 05:02:20

标签: c#-4.0

如何从其他主表单中读取数据,如在辅助表单中使用的简单文本?

我在主窗体中使用了一个公共变量来进行赋值,但是当我调用main form时,变量是NULL。

2 个答案:

答案 0 :(得分:0)

有很多方法可以将值传递给另一个表单,一种方法是将其传递给被调用表单的constructor,然后将其传递给local/private property

假设您在Form1,并致电Form2

 Form2 frmCalled = new Form2("Pass this value");

constructor的{​​{1}}现在就有了这个

Form2

这意味着你有一个名为 public Form2(String val) { InitializeComponent(); this.passval = val; } 的{​​{1}}:

property

因此,如果您想使用它,那么您现在可以通过简单地调用该属性来使用它。例如,如果在passval中点击了一个按钮,并且您想现在分配该值,那么您将拥有:

  private string passval { get; set; }

另一种方法是使用父表单中的Form2 private void button1_Click(object sender, EventArgs e) { String receivedValue; receivedValue = passval; } 属性,然后从辅助表单或被调用表单中调用它。让我们在你的static或父表格中说出你会这样声明:

public

让我们假设您正在调用Form1或您将要执行的调用表单:

  public static string fromParentForm { get; set; }

然后Form2可以访问 Form2 frmCalled = new Form2(); fromParentForm = "Parent Form Value here"; // Put value first in your static property frmCalled.Show(); 的值或属性,如:

Form2

答案 1 :(得分:0)

为此,您可以使用几种方法。其中之一(可能不是很好的做法,但我不知道这些数据的其他目的。

首先创建一个变量,在SecondaryForm中保留MainForm的引用:

Private MainForm mainForm;

然后创建辅助表单的构造函数,作为主表单的参数引用

Public SecondaryForm(MainForm mainForm)
{
    this.mainForm = mainForm;    
}

然后当你打开一个辅助表单(我假设你从MainForm打开它)时,用你的新构造函数创建一个SecondaryForm实例:

//somewhere in MainForm
SecondaryForm secondaryForm = new SecondaryForm(this);
secondaryForm.Show()    //or ShowDialog()

在这个SecondaryForm的内部代码之后,你可以使用你的MainForm实例的所有公共属性/方法