MDI窗体程序中主窗体有N个子窗体,请问实例化问题?

问题描述

首先主窗体主要代码:privatevoidMenu_Click(objectsender,EventArgse){WinOperationClassP_Menu=newWinOperationClass();//声明对WinForm窗体进行操作的类对象P_Menu.ShowForm((ToolStripMenuItem)sender,this);//调用类中的方法,完成对窗体中ToolStripMenuItem控件相应项的操作}涉及到的类主要代码:winoperationclasspublicvoidShowForm(ToolStripMenuItemcontrol,Formform){switch(control.Tag.ToString()){case"1":EmployeeInfoemployee=newEmployeeInfo();employee.MdiParent=form;employee.StartPosition=FormStartPosition.CenterScreen;employee.Show();break;case"2":CompanyInfocompany=newCompanyInfo();company.MdiParent=form;company.StartPosition=FormStartPosition.CenterScreen;company.Show();break;case"3":CustomerInfocustomer=newCustomerInfo();customer.MdiParent=form;customer.StartPosition=FormStartPosition.CenterScreen;customer.Show();break;case"4":Loginlogin=newLogin();login.StartPosition=FormStartPosition.CenterScreen;login.ShowDialog();form.Dispose();//释放窗体资源break;EmployeeInfo部分代码:namespaceCyberCafe.BaseRecord{publicpartialclassEmployeeInfo:Form{publicEmployeeInfo(){InitializeComponent();}当我点主窗口的其中一个菜单的时候,比如传的变量是1,那么执行到case1,这里。现问题是:1、结决case1这个窗口再次实例化问题2、结决,当我点击case2,的时候,能判断是否有其他子窗口,如果有,则自动关闭其他子窗口,并且转到这个case2新的窗口上本人是新手,请把代码写全,并且告诉本人加到哪里,在非常感谢。

解决方案

解决方案二:
可以你把窗体对象生名到类中EmployeeInfoemployee;if(employee!=null||employee.IsDisposed==false){employee.close();}加到switch前面就可以了前面的是判断一下是否new了对象后面的是否被释放,也就是窗体有没有关闭false
解决方案三:
我把上面代码放到switch前面了。提示我下面内容。在线等错误1“CyberCafe.BaseRecord.EmployeeInfo”不包含“close”的定义,并且找不到可接受类型为“CyberCafe.BaseRecord.EmployeeInfo”的第一个参数的扩展方法“close”(是否缺少using指令或程序集引用?)D:CyberCafeCyberCafeItemClassWinOperationClass.cs4326CyberCafe错误2不能在此范围内声明名为“employee”的局部变量,因为这样会使“employee”具有不同的含义,而它已在“父级或当前”范围中表示其他内容了D:CyberCafeCyberCafeItemClassWinOperationClass.cs4934CyberCafe
解决方案四:
publicvoidShowForm(ToolStripMenuItemcontrol,Formform){FormnewForm=null;switch(control.Tag.ToString()){case"1":newForm=OpenForm<EmployeeInfo>();break;case"2":newForm=OpenForm<CompanyInfo>();break;case"3":newForm=OpenForm<CustomerInfo>();break;case"4":newForm=OpenForm<Login>();break;}newForm.MdiParent=form;newForm.StartPosition=FormStartPosition.CenterScreen;FormCollectionforms=Application.OpenForms;foreach(FormeachForminforms){if((eachForm.Name!=form.Name)&&(newForm.Name!=eachForm.Name)){eachForm.Close();}}if(control.Tag.ToString()=="4"){newForm.ShowDialog();newForm.Dispose();}else{newForm.Show();}}publicFormOpenForm<T>()whereT:Form,new(){Formform=Application.OpenForms[typeof(T).Name];if(form==null){form=newT();}returnform;}}
解决方案五:
完了,大哥,我程序一按你这么一改,这个类瘫了,等我还原下吧。
解决方案六:
大哥,你这种方法不行,我一这么改,我的其它代码就提示我什么string,class什么的,
解决方案七:
提示我错误1应输入class、delegate、enum、interface或structD:CyberCafeCyberCafeItemClassWinOperationClass.cs10916CyberCafe
解决方案八:
??????你的employeeinfo是不是窗体???窗体怎么会没有close方法呢?
解决方案九:
是窗体,只因为close打错了,应该首字母大写才对Close,但是我大写后,那段代码加到他说的位置上也不行。

时间: 2024-09-21 05:17:17

MDI窗体程序中主窗体有N个子窗体,请问实例化问题?的相关文章

嵌入式程序的设计方式,怎么把exe执行放在窗体程序中作为子程序?

问题描述 嵌入式程序的设计方式,怎么把exe执行放在窗体程序中作为子程序? 怎么设计windows嵌入式程序,怎么把程序嵌套在一起主程序将exe作为子程序在窗体内调用? 解决方案 使用setparent函数设置目标程序作为子程序运行.

怎么把windows程序图标用鼠标拖到窗体程序中

问题描述 怎么把windows程序图标用鼠标拖到窗体程序中 怎么把windows程序图标用鼠标拖到窗体程序中,怎么在程序中管理这些图标,图标的程序执行? 解决方案 你可以响应鼠标的拖放事件,比如说oledrogover

在C#窗体程序中,如何判断textbox控件中输入的格式是浮点型

问题描述 在C#窗体程序中,如何判断textbox控件中输入的格式是浮点型?求教,谢谢咯! 解决方案 解决方案二:简单点try{float.Parse();}catch{//不是}解决方案三:1L方法最简单,还可以用正则判断解决方案四:Regex.IsMatch(strValue,@"^d+.d+$")解决方案五:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSyst

c#窗体-C#窗体程序中文件夹复制问题

问题描述 C#窗体程序中文件夹复制问题 想问一下,用什么可以把一个文件夹复制到另一个文件夹里面,我试过StreamReader.StreamWriter和FileStream.但是访问路径时被拒绝了,然后我有想过用Directory在目的文件夹里创建一个和源文件夹名称一样的文件夹,然后用File.Copy()把源文件夹里的文件一个个复制到目的文件夹里,结果不会用.所以向各位求助一下,谁能帮我一下,谢谢了! 解决方案 以管理员方式运行你的程序即可,你的代码没有问题.用不着StreamReader.

c# 附件-如何在c#窗体程序中添加像outlook附件类似的功能

问题描述 如何在c#窗体程序中添加像outlook附件类似的功能 各位大神们,请教一个问题,如何在c#窗体程序中添加像outlook附件类似的功能,上传一份附件,在窗体中显示文件名,双击可以打开相关软件打开文件?求大神给点思路,c#可以做到么? 我是新手,没有币 不能悬赏啊 求大神赐教-- 解决方案 说白了,带附件的邮件用的是mime格式的文件,你也可以用它.有很多mime解析的库,比如http://www.codeproject.com/Articles/11380/A-C-Implement

vb-怎么把窗体程序中工具条的位置记忆下来?

问题描述 怎么把窗体程序中工具条的位置记忆下来? 怎么记录下工具条的位置和显示的状态,又怎么在程序下次启动的时候进行加载? 解决方案 toolbar自带savesetting方法,可以保存设置到注册表的.

c#代码-C#窗体程序中的平方和开方的代码是什么?

问题描述 C#窗体程序中的平方和开方的代码是什么? 问题如上,在写一个简单计算器,这个不知道是什么?求大神告知,在C#窗体程序中表示平方和开方的代码, 解决方案 已查到,不用麻烦大家了

MDI窗体程序中防止子窗体被多次实例化——Singleton的C#实现

程序 晚上逛CSDN论坛的时候,看到C#区有位朋友问"防止MDI子窗体被多次实例化",我随即写了这篇文章. 其实这个问题,就是经典的23种设计模式中的单件模式(Singleton),下面用C#实现之: 首先我们有2个Windows Form,主窗体叫Form1,子窗体叫ChildForm.在主窗体中加入一Menu,用来实例化子窗体,我们在Form1.cs中写入下代码: private static ChildForm childForm; //静态变量,保存唯一实例 private v

C#中主窗体对象的创建

问题描述 Windows应用程序中主窗体是怎么实例化的,它是静态的吗,还是...(入门菜鸟) 解决方案 解决方案二:///<summary>///Themainentrypointfortheapplication.///</summary>[STAThread]staticvoidMain(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Applicat