从子表单访问父表单上的控件

时间:2011-01-03 14:25:02

标签: c# winforms

我想从子窗体更改父窗体上的文本框中的文本。 我设置了文本框

modifiers = public 我在parentform中有额外写的函数

public TextBox txtbox
{
  get
  {
    return  mybox;
  }
  set
  {
    mybox= value;
  }
}

以儿童形式写作   this.ParentForm。 (看不到mybox)。 我错过了什么。 的问候,

3 个答案:

答案 0 :(得分:4)

由于ParentForm将返回Form而不是您的表单,因此您需要先将其转换为可以访问任何自定义属性:

((MyForm)this.ParentForm).textbox = "new text!";

此外,您正在设置整个控件,而不仅仅是文本。

试试这个,只显示text属性:

public string txtbox
{
  get
  {
    return  mybox.Text;
  }
  set
  {
    mybox.Text = value;
  }
}

答案 1 :(得分:3)

我认为问题是ParentForm是Form类型,它没有成员txtbox。您需要将ParentForm强制转换为表单(假设它是Form1),如:

((Form1)this.ParentForm).txtbox

答案 2 :(得分:0)

在没有看到任何实际代码的情况下随机猜测:mybox可能未被公开。

编辑:或者啊,是的,正如安德烈所说的那样 - 你没有将ParentForm强制转换为你父类的类型。