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

load メソッド内から newChild が宣言されていないように見えるため、直接参照できるはずです。

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 に答える