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

C#LearningTutorial-Ifnootherinstanceisopenformopen-passtypetomethod分享

时间:2023-04-11 12:12:11 C#

如果没有其他实例打开formopen-passtypetomethod我想简化一些代码。所以我想创建一个函数来检查某个表单是否已经打开。现在,我的开始表单上的每个按钮都有代码。privatevoidbutton_parts_Click(objectsender,EventArgse){FormCollectionfc=Application.OpenForms;foreach(在fc中形成frm){如果(frm是frm_parts){返回;}}frm_TeilenewForm=newfrm_parts();newForm.Show();现在我想要这样的东西:privatevoidbutton_parts_Click(objectsender,EventArgse){StartNewForm(frm_parts);}privatevoidStartNewForm(TypemyForm){FormCollectionfc=Application.OpenForms;foreach(fc中的Formfrm){if(frm是myForm){return;}}myFormnewForm=newmyForm();newForm.Show();但我无法将类型传递给函数编辑:当然可以,但我不知道如何以及从哪里开始。有没有(另一种)方法来实现我的需要?您可以使用以下任何选项。使用通用方法:privatevoidStartNewForm()whereT:Form,new(){FormCollectionfc=Application.OpenForms;foreach(在fc中形成frm){如果(frm是T){返回;}}varnewForm=newT();newForm.Show();下面是用法:StartNewForm();使用Activator.CreateInstance创建一个表单privatevoidStartNewForm(TypemyForm){FormCollectionfc=Application.OpenForms;foreach(在fc中形成frm){if(frm.GetType()==myForm){return;}}varnewForm=(Form)Activator.CreateInstance(myForm);newForm.Show();下面是用法:StartNewForm(typeof(Form1));改进:以上是C#学习教程:如果没有其他实例,打开窗体,打开-将类型传递给方法,分享所有内容,如果对大家有用需要进一步了解C#学习教程,希望大家多多关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: