我想从子窗体更改父窗体上的文本框中的文本。 我设置了文本框
modifiers = public 我在parentform中有额外写的函数
public TextBox txtbox
{
get
{
return mybox;
}
set
{
mybox= value;
}
}
以儿童形式写作 this.ParentForm。 (看不到mybox)。 我错过了什么。 的问候,
答案 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强制转换为你父类的类型。