如何从多个表单中打开一个主表单(反之亦然)并保留同一个实例
本文关键字:表单 反之亦然 保留 实例 同一个 一个 | 更新日期: 2023-09-27 18:27:59
我有一个主表单,上面有多个按钮,允许用户打开其他表单。每个表单上都有一个按钮,允许用户返回到主表单。我如何做到这一点,使它们都是同一实例的一部分?由于我的主Program.cs文件是一个静态文件,我想如果我在Program.cs中实例化主表单,如下所示:
static class Program
{
P90xScheduleForm ScheduleObjectForm = new P90xScheduleForm();
我可以从其他表格中访问主表格,如
private void btnGoToSchedule_Click(object sender, EventArgs e)
{
ScheduleObjectForm.Show();
this.Hide();
}
但我得到一个"名称"ScheduleObjectForm"在当前上下文中不存在"错误。我还尝试在Program.cs文件的实例化语句前面添加"public static",但这没有帮助。
我不知道该怎么办。试图在每个子窗体中实例化主窗体会创建新的实例。
也许我只是太超前了。这超出了我们在课堂上的水平,但我希望如果我有冒险精神,开始制作自己的程序(当然除了家庭作业),这将帮助我更好地理解事情。
你不是这样做的。我认为这是winforms。您必须实例化其中一个表单(主表单)firs。
然后,当你点击它的一些按钮时,你可以显示其他类似的表单。
private void button1_Click(object sender, EventArgs e)
{
new Form2().ShowDialog();
}
当你展示了第二个表单时,你可以通过关闭它"返回"到主表单。
关闭主窗体后,您的应用程序将退出。
我认为您可能需要公开静态类程序:
public static class Program
{
....
通常,Program.cs文件已经包含以下行,该行实例化了在项目创建时创建的主窗体,如果它存在于程序中,则使用主窗体的名称更改Form1:
Application.Run(new Form1());
打开其他表单时,使用其所有者属性将其父表单设置为主表单:
frmOther.Owner = this;
frmOther.Show();
this.Hide();
显示其他表单中的主表单:
this.Owner.Show();
this.Hide();