从内部面板表单中检索数据

时间:2013-03-28 12:33:03

标签: c# winforms

我有一个表单,其中有一个在其中打开表单的面板。

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

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

由于

2 个答案:

答案 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