如何从其他主表单中读取数据,如在辅助表单中使用的简单文本?
我在主窗体中使用了一个公共变量来进行赋值,但是当我调用main form时,变量是NULL。
答案 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实例的所有公共属性/方法