我有一个表单,其中有一个在其中打开表单的面板。
我希望能够从父母的子表单中读取数据。
private void NewSwitch_Load(object sender, EventArgs e)
{
newChild = new EnterSedol();
newChild.TopLevel = false;
newChild.AutoScroll = true;
panel1.Controls.Add(newChild);
newChild.Show();
}
private void GetValueFromChildButton(object sender, EventArgs e)
{
textBox1.Text = //What here??
}
由于
答案 0 :(得分:1)
因为看起来没有从load方法中声明newChild,所以你应该可以直接引用它:
textBox1.Text = newChild.ButtonValue;
如果尝试引用newChild表单中的控件,可以使控件可访问,或者在EnterSedol对象中创建属性,以便为您检索该信息。
在您的EnterSedol课程中:
public string ButtonValue {
get { return button1.Text; }
}
答案 1 :(得分:0)
如果面板中可能有多种形式,那么您可以使用面板1的Controls集合迭代它们。但你必须知道如何区分它们。例如:
foreach (var frm in panel1.Controls)
if (frm is EnterSedol &&
/*frm is target form, for example there is needed tag...*/ )
textBox1.Text = (frm as EnterSedol).GetData(); //Do your stuff