0

我有一个表单,它有一个面板,里面有一个打开的表单。

我希望能够从父表单的子表单中读取数据。

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??
}

谢谢

4

2 回答 2

1

由于看起来 newChild 没有从 load 方法中声明,您应该能够直接引用它:

textBox1.Text = newChild.ButtonValue;

如果尝试引用 newChild 表单中的控件,要么使控件可访问,要么在 EnterSedol 对象中设置属性,该对象将为您检索该信息。

在您的 EnterSedol 课程中:

public string ButtonValue {
  get { return button1.Text; }
}
于 2013-03-28T12:57:57.777 回答
0

如果您的面板中可能有许多表单,那么您可以使用 panel1 的 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
于 2013-03-28T13:02:53.760 回答