C# 从子窗体访问父窗体上的控件

C# 从子窗体访问父窗体上的控件,c#,winforms,C#,Winforms,我想将父窗体上文本框中的文本从子窗体更改为文本。 我设置了文本框 修饰符=公共 我在parentform中额外编写了一个函数 public TextBox txtbox { get { return mybox; } set { mybox= value; } } 以儿童形式写作 这是我的父母表格。(看不到我的盒子)。 我错过了什么。 关于,由于ParentForm将返回一个表单而不是您的表单,因此您需要先强制转换它,然后才能访问任何自定义属性: ((

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

修饰符=公共 我在parentform中额外编写了一个函数

public TextBox txtbox
{
  get
  {
    return  mybox;
  }
  set
  {
    mybox= value;
  }
}
以儿童形式写作 这是我的父母表格。(看不到我的盒子)。 我错过了什么。
关于,

由于
ParentForm
将返回一个
表单而不是您的表单,因此您需要先强制转换它,然后才能访问任何自定义属性:

((MyForm)this.ParentForm).textbox = "new text!";
此外,您正在设置整个控件,而不仅仅是文本

尝试此操作,以仅公开文本属性:

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

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


没有看到任何实际代码的随机猜测:
mybox
可能未声明为公共


编辑:或者,啊,是的,正如Andrei所说-您没有将父窗体强制转换为父窗体的类型。

只是一个注释,但这看起来像是一个设计出了问题。子窗体不应该访问父控件。正如Henk提到的,它不是一个实用的设计。尝试改用“事件”。子窗体意味着父窗体在其中包含另一个窗体?还是你在谈论遗产?
((Form1)this.ParentForm).txtbox