我正在使用一个容器(mdi父对象)打开一个主菜单。主菜单允许用户连接到数据库并打开其他程序。我正在尝试在容器(父窗体)上显示您连接到的数据库,但是在将字符串从主菜单传递到容器时遇到了问题。当用户单击连接按钮时,我不知何故需要容器具有一个事件侦听器,以侦听子窗体中的按钮单击。当在子窗体上单击连接按钮时,它将把变量传递给父窗体。我将如何去做呢?
也许您可以使用一个事件。因此,每次子窗体上的数据库名称更改时,您都可以在父窗体上回叫
孩子
public partial class Child : Form
{
public event DatabaseChangeHandler DatabaseChanged;
public delegate void DatabaseChangeHandler(string newDatabaseName);
public Child()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//When the database changes
if (this.DatabaseChanged != null)
{
this.DatabaseChanged("The New Name");
}
}
}
父母
public partial class Parent : Form
{
private Child childForm;
public Parent()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// Open the child form
childForm = new Child();
childForm.DatabaseChanged += childForm_DatabaseChanged;
childForm.ShowDialog();
}
void childForm_DatabaseChanged(string newDatabaseName)
{
// This will get called everytime you call "DatabaseChanged" on child
label1.Text = newDatabaseName;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句