【发布时间】:2022-01-26 16:37:10
【问题描述】:
我现在被困在一个岩石和坚硬的地方之间。
我调用了我的子窗体并将其停靠在主窗体下的内容面板中。 在异步计时器之后,我关闭第一个子窗体并从主窗体调用一个函数来显示下一个子窗体,但没有任何效果。
这是我要调用的主窗体中的函数
public void ShowMainMenu()
{
FormMainMenu MM = new FormMainMenu();
OpenChildForm(MM, new object());
}
这是子窗体中的函数,用于关闭第一个子窗体,但随后调用上述函数,以显示下一个子窗体。
(它们被注释掉了,你可以注意到函数行)
public async Task DisplayMainMenu(int interval)
{
await Task.Delay(interval);
this.Close();
//FormMainBuild MB = new FormMainBuild();
//MB.ShowMainMenu();
}
请帮忙,我已经在网上搜索了几个小时,尝试了多个修复程序,但没有任何东西可以让我从父窗体调用 ShowMainMenu 函数。
(所有子窗体都停靠在主窗体中的面板控件下)
【问题讨论】:
-
每当您调用 new FormMainBuild() 时,都会创建 FormMainBuild 的新 instance。然后你对这个实例执行一个调用,而不是针对已经创建并在屏幕上的实例。您需要对当前 FormMainBuild 实例的引用来要求它执行该方法。
-
谢谢@Steve,我该怎么做?我坐在这里玩弄我的拇指atm
-
这是X Y Problem。请告诉我们您要完成的工作,而不是要求我们尝试修复您损坏的解决方案..
-
我在上面解释了我的情况。我有我的 MainForm 来容纳子窗体并将它们停靠在 MainForm 中的面板上。当加载表单下的计时器完成后,我想从主窗体调用一个函数。这将反过来显示第二个子表单
-
你在做某种定时测验吗?用户起床例如45 秒内回答子表单上的问题,如果他们提前关闭子表单,很好,如果不是,它会在 45 秒后关闭?
标签: c# visual-studio