如何限定相同窗体只能同时存在一个?????

问题描述

我有一个主界面FormMain,点击其上的按钮1会出现Form2界面,但每点一次就出现一个Form2!!!怎么样限定只能有一个Form2存在呢???如何实现如果Form打开了则焦点到Form2,如果没打开则打开。求帮助,求包养!!!谢谢

解决方案

解决方案二:
参考单态模式
解决方案三:
定义全局变量Formform;在事件中判断if(form==null&&form.isdisposed){form=newForm();form.show();}else{form.active()}
解决方案四:
单例模式
解决方案五:
可以做一个全局的static,每次创建前先判断是否存在
解决方案六:
staticForm2form=null;publicstaticForm2GetInstance(){if(form==null||form.IsDisposed){form=newForm2();}returnform;}打开form2时Form2list=Form2.GetInstance();list.Show();
解决方案七:
单件模式,代码具体例如下:privatestaticCustInfoinstance;publicstaticCustInfoInstance{get{if(instance==null){instance=newCustInfo();}returninstance;}set{instance=value;}}其它窗口直接调用CustInfo.instance
解决方案八:
补充一下,set{instance=value;}这段不要了,只读就好了
解决方案九:
if(frm1!=null&&!frm1.IsDisposed){frm1.Show();frm1.BringToFront();}else{frm1=newFrmConfig();frm1.Show();}

解决方案十:
frm1=newFrmConfig();改为frm1=newForm1();我没改过来
解决方案十一:
设置一个全局变量最好,否则foreach(variteminApplication.OpenForms){if(itemisForm2){return;}}Form2新实例.Show();

解决方案十二:
引用10楼的回复:

设置一个全局变量最好,否则C#codeforeach(variteminApplication.OpenForms){if(itemisForm2){return;}}Form2新实例.Show();

return前加一行item.Active();

时间: 2024-09-20 00:05:27

如何限定相同窗体只能同时存在一个?????的相关文章

jsp 网站开发-JAVA WEB应用,一个操作只能同时有一个用户操作

问题描述 JAVA WEB应用,一个操作只能同时有一个用户操作 一个B/S系统,其中有个调用Linux脚本的操作,执行时间较长,要求系统只能同时有一个用户执行此操作,否则提示其他用户正在执行,请问下该如何实现呢? 解决方案 在該腳本開頭添加"ps -ef | grep 'yourshell'",返回監測結果,看是繼續執行,或是退出交回到java 解决方案二: 这个可以当启动linux脚本时写一个标识位到一个文件内.当其它用户再启动linux脚本时检测这个文件.是否存在即可. 解决方案三

jsp-JSP从后台获得的数据用EL表达式只能获取第一个ID的数据

问题描述 JSP从后台获得的数据用EL表达式只能获取第一个ID的数据 后边ID为2/3/4等数据改如何获得呢 <s:iterator value="%{#request.data}" var="data3_9" > 获得数据 ${data3_9.time} 只能获得ID为0的相应的数据,接下来ID为1的话改如何获得呢 解决方案 ${data.time}/c:forEach 解决方案二: " ${data.time}/c:forEach &quo

限定pan手势只能在圆内移动view

限定pan手势只能在圆内移动view 效果: 虽然看起来很简单,但实现原理还是稍微有点复杂-_-!! 核心的地方,就是需要计算pan手势的点与指定点的距离,不能超过这个距离,超过了就让动画还原,很容易理解:) // // RootViewController.m // Circle // // Copyright (c) 2014年 Y.X. All rights reserved. // #import "RootViewController.h" @interface RootVi

按钮-C# 如何在一个窗体内执行另外一个窗口的一个控件的事件

问题描述 C# 如何在一个窗体内执行另外一个窗口的一个控件的事件 问题具体描述是:在Form1里面点击一个按钮,可以执行另外一个Form2里一个按钮对应的事件.像一个登陆界面,一个测试网络的界面,我要点登陆界面的登陆键,可以直接开启测试网络界面一个测试键对应的事件. 我实验过,如果把测试网络界面的测试键对应的事件设法移植到登陆键,很容易造成代码的冗杂,很难看懂.鄙人学识浅薄,还望提点,是否有优化的方案去解决这个问题. 解决方案 这个可以使用 委托 解决. 解决方案二: 用委托, 自定义事件htt

用showDialog打开了一个模式窗体,但为什么我在该模式窗体中做了一个操作后并没有主动关闭或者隐藏该窗体,但是它却主动关闭了该模式窗体,回到了调用它的主窗体

问题描述 用showDialog打开了一个模式窗体,但为什么我在该模式窗体中做了一个操作后并没有主动关闭或者隐藏该窗体,但是它却主动关闭了该模式窗体,回到了调用它的主窗体,为什么?简单介绍一下我的代码:FormMain主窗体FormInfo要打开的模式窗体FormMain主窗体里的代码:一个buttun按钮事件:FormInfof=FormInfo();f.showDialog();FormInfo要打开的模式窗体代码:当我信息填写完以后,点击提交按钮,可是有的信息验证没有通过,这时我就希望能停

在窗体程序中将另一个exe嵌入执行,作为子程序的问题

问题描述 在窗体程序中将另一个exe嵌入执行,作为子程序的问题 在窗体程序中将另一个exe嵌入执行,主程序窗口内作为一个子窗口来进行调用,请问这个的思路是什么? 解决方案 用shellexecute函数. 解决方案二: execute 函数能够打开另外一个.exe 文件.....

关于npoi导出的问题,只能导出最后一个数据

问题描述 关于npoi导出的问题,只能导出最后一个数据 public void Export(HttpContext context) { context.Response.ContentType = "application/vnd.ms-excel;charset=UTF-8"; //文件名进行url编码,防止乱码 string strFileName = HttpUtility.UrlDecode("班级平均分排名.xls"); context.Respons

jquery限定文本框只能输入数字(整数和小数)_jquery

本文实例介绍了jquery限定文本框只能输入数字的详细代码,分享给大家供大家参考,具体内容如下 先来一段规定文本框只能够输入数字包括小数的jQuery代码: <!DOCTYPE html> <html> <head> <meta charset="gb2312"> <title></title> <script type="text/javascript" src="mytest

C#窗体控件实现一个多线程序出现了点小问题,、请大家指点一下

问题描述 C#窗体控件实现一个多线程序出现了点小问题,.请大家指点一下 刚刚学习C#,想创建一个时间的窗口,但是运行不了说是Thread没有声明,不知道怎么改,下面是程序的具体,请大神们看看 谢谢using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;usi