[英]c# Many Parent forms one child
我有Parent_1,Parent_2,Parent_3等,并且有一个子窗体
在Parent_1,Parent_2,Parent_3中...我有:
private string strText;
public string pubText {
get { return strText; }
set { strText = value; } }
在按钮上:
private void btbutton1_Click(object sender, EventArgs e)
{
var form = new fChild(this);
form.ShowDialog();
}
在子窗体中,我有以下代码:
private Parent_1 logicalParent;
public fChild(Parent_1 parent)
{
InitializeComponent();
logicalParent = parent;
this.FormClosed += new FormClosedEventHandler(child_FormClosed);
}
和
void child_FormClosed(object sender, FormClosedEventArgs e)
{
logicalParent.pubText = this.textBox1.Text;
}
这仅适用于1个父表单,我如何将其用于其他父表单? 请帮忙
您可以为三种父表单创建一个公共接口:
public interface IParentForm
{
string PubText {get; set;}
}
public class Parent_1 : Form, IParentForm
{
public string PubText
{
get { return this.pubText; }
set { this.pubText = value; }
}
}
//same for Parent_2 and 3
然后在你的孩子形式申报logicalParent
为类型IParentForm
,并更改子窗体的构造函数是public fChild(IParentForm parent)
单击该按钮,执行以下操作:
private void btbutton1_Click(object sender, EventArgs e)
{
var form = new fChild(this); // this is not more needed
form.ShowDialog();
pubText = form.pubText;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.