当前位置: 首页 > 编程语言 > C#

ShowHiddenForm分享

时间:2023-04-10 17:57:09 C#

ShowHiddenForm如何使用this.Hide();显示隐藏内容我试过MainMenuForm.Show();它只是说我需要一个对象引用。然后我尝试了:MainMenuFormfrmMainMenu=newMainMenuForm();frmMainMenu.Show();这似乎显示了正确的形式。但是当您退出应用程序时,它会保留在内存中,因为它不会显示隐藏的表单,而是显示表单的新版本。实际上有2个表单实例(一个隐藏,一个可见)。澄清一下,MainMenuForm是启动窗体。当(例如)单击选项1时,MainMenuForm在打开选项1窗体时隐藏自身。我想知道的是如何使MainMenuForm打开的选项1表单“取消隐藏”MainMenuForm,然后自行关闭。这里的正确程序是什么?提前致谢。当你这样做时:MainMenuFormfrmMainMenu=newMainMenuForm();frmMainMenu.Show();您正在创建并显示MainMenuForm的新实例。为了显示和隐藏MainMenuForm的实例,您需要保留对它的引用。即,当我执行紧凑型框架应用程序时,我有一个使用单例模式的静态类,以确保我在运行时只有一个表单实例:publicclassFormProvider{publicstaticMainMenuFormMainMenu{get{if(_mainMenu==null){_mainMenu=newMainMenuForm();}返回_mainMenu;}}私有静态MainMenuForm_mainMenu;现在您可以使用FormProvider.MainMenu.Show()来显示表单,使用FormProvider.MainMenu.Hide()来隐藏表单。Singleton模式(感谢Lazarus提供的链接)是在WinForms应用程序中管理表单的好方法,因为它意味着您只需创建一次表单实例。第一次通过窗体各自的属性访问窗体时,窗体被实例化并存储在一个私有变量中。例如,第一次使用FormProvider.MainMenu时,会实例化私有变量_mainMenu。然后您调用FormProvider.MainMenu并且_mainMenu立即返回而无需再次实例化。但是,您不必将所有表单类都存储在静态实例中。您可以将表单作为控制MainMenu的表单的属性。publicpartialclassYourMainForm:Form{privateMainMenuForm_mainMenu=newMainMenuForm();protectedvoidShowForm(){_mainMenu.Show();}protectedvoidHideForm(){_mainMenu.Hide();}}更新:只需阅读MainMenuForm是您的启动表单。实现一个类似于上面单例示例的类,然后将应用程序的Program.cs文件中的代码更改为以下内容:Application.Run(FormProvider.MainMenu);然后,您可以从应用程序访问MainMenuForm中的任何位置传递FormProvider类。最简单的方法是使用LINQ并查看Application.OpenForms属性。我假设您只有1个表单实例(希望如此!),否则请确保您在隐藏表单上有一些公共属性以区分它。以下代码将为您取消隐藏表单:varformToShow=Application.OpenForms.Cast在创建第一个表单时,您需要保留对第一个表单的引用,然后保存该引用的代码可以对其调用Show。如果您不是从某个地方打开表单,但它被设置为启动表单,那么您需要更改它以便您有一个打开表单的Main方法,或者您可以让表单存储对另一个地方的引用要去的景点。例如,一种快速而丑陋的方法是向mainform添加一个公共静态属性,然后当您隐藏该表单时,它也会将其写入this属性,然后可以在代码的其他部分需要时检索该属性。实际上这对我有用....publicclassMainWindow:Form{Form_mainMenuForm=newMainMenuForm();它由按钮单击事件调用。privatevoidbuttonclick(){if(_mainMenuForm.Visible){_mainMenuForm.Visible=false;}else{_mainMenuForm.Visible=true;存储对表单的引用并在其上调用.Hide()和.Show()。例如:publicclassMainWindow:Form{privateForm_mainMenuForm=newMainMenuForm();publicvoidbtnShowMenuForm_Click(...){_mainMenuForm.Show();}publicvoidbtnHideMenuForm_Click(...){_mainMenuForm.Hide();}//etc}此示例假定您有一个启动MainMenuForm的窗体。调用引用的表单。比如:调用父类----------publicMyFormf{get;set;}voidDoStuff(){f=newMyForm();f.Show();}MyForm---------voidDoOtherStuff(){this.hide();}Parent---------voidUnHideForm(){f.show();}另一种更简单的方法是循环unHideForm,查看哪些还在运行,打开...以上就是C#学习教程:显示隐藏表的全部内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——.OpenForms){if(oFormisMainMenuForm){oForm.Show();休息;}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: