只显示一个窗体实例

如何在MDI中使子窗体只保留一个实例 由于在MDI中,子窗体会很多,那么在我以前一篇文章中所提到的方法就有些繁琐了。为了能适应多个子窗体,并对于每个子窗体只保留一个实例,那么我就用一个新的方法来替换,即用反射方法来作处理。 大致代码如下。首先是通过子窗体类型名来判断是否打开新的子窗体,还是把原有的子窗体进行显示。    using System.Reflection;    ///     /// Open c 阅读详情


一般这是为了避免出现多个窗体实例:一般我们不把窗体关闭,只把窗体隐藏

(1、)在主窗体类中,声明一个本类级别的变量用来记录窗体实例
 (2、) 在加载子窗体事件中,判断是否有窗体实例

public class from1:System.Windows.Forms.Form
{
   private from2 frm2;  //本类级别的变量用来记录窗体实例

   private void button_Click(object sender, System.EventArgs e)
   {
 if(frm2==null)   //没有实例
 {
  frm2=new from2();  //创建一个
  frm2.MdiParent=this;  //设置from1父窗体
  frm2.Show();  //显示出来
 }
 else
 {
  frmes.Visible=true; //显示属性设为真
 }
    }
}
(3、)在卸载子窗体事件中,写代码,使窗体不卸载,而是隐藏
private void from1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
 e.Cancel=true;   //取消关闭本窗体
 this.Hide();   //隐藏本窗体
}

Vb.net调用子窗体 方法一:   DimNewMDIChild As New Form3         ‘实例化子窗体Form3   NewMDIChild.MdiParent = Me    ‘设置子窗体的父窗体为本窗体           NewMDIChild.Show()   ‘显示子窗体   方法二:    '声明SetParent函数,这是一个API函数  阅读详情

相关推荐

Winforn中怎样在窗体中打开另一个窗体

场景 在Winform的窗体A中打开另一个窗体B。 实现 //打开新的窗体 CurveCompare cc = new CurveCompare(); cc.Show(); 效果 以上代码的实现参照: https://blog.youkuaiyun.com/BADAO_LIUMANG_QIZHI/article/details/100140716 ...

BADAO_LIUMANG_QIZHI的博客 673

c# WinForm 点击出现弹出多个窗体, 怎么才能只显示一个窗体。解决方案

第一种解决方法 “单例” form1 private void button1_Click(object sender, EventArgs e) { Form2 f2 = Form2.GetInstance(); f2.Show(); } form2 public partial class Form2 : Form { private static Form2 inst...

ai 2740

LAMMPS实战指南 - 从in文件到分子动力学模拟的完整流程解析

本文详细解析了LAMMPS分子动力学模拟的完整流程,从理解in文件的核心作用与基础结构开始,逐步指导如何创建模拟体系、选择势函数、进行能量最小化与初始化,并深入讲解了NVT/NPT系综弛豫与生产模拟的关键步骤。文章还提供了常见问题的避坑指南与实战技巧,帮助初学者快速掌握从编写in文件到成功运行模拟的全过程。

weixin_28365523的博客 395

仅显示一个非模式窗体实例

完全可以采用Singleton模式来实现,注意在Form.Closed事件中取消对窗体对象的引用,否则GC无法回收。仅显示一个非模式窗体实例,如果该窗体已经存在,则显示并激活。

biyusr的专栏 185

从‘静态拍照’到‘动态录像’:用Malmquist指数讲好你的效率变化故事(附Stata/R代码)

本文深入探讨了如何利用Malmquist指数构建动态效率分析框架,从静态数据到动态叙事的转变。通过分解技术效率变化(EC)和技术进步(TC),结合Stata/R代码实现四种动态可视化方法,帮助研究者更直观地展示效率变化的动态特征。文章还提供了诊断性叙事结构和比较叙事技巧,助力决策者理解效率提升的来源与趋势。

weixin_32678995的博客 603

Rstudio安装org.Hs.eg.db

自己也是个小白,初次安装org.Hs.eg.db碰到好多问题,步骤总结如下: 第一,instal.packages()安装,不行则换 BiocManager::install() 第二,如BiocManager不成,说明不是最新版本,可按提示安装最新版 BiocManager::install(version = '3.13') #由于R版本较新,按照提示中的相关信息,安装最新版本的 第三,再次安装 BiocManager::install("org.Hs.eg.db") 第四,之后每个人.

ZH_DDong的博客 2万+

winform父窗体实现多个子窗体只能显示一个

一、前言 当一个父窗体中包含多个动能的时候可能会存在很多子窗体,那么当每个都去打开的时候就会都显示在父窗体上,这样给用户的视觉肯定很不舒服。所以当出现这种情况的时候肯定也会有解决方法,以下就是一种解决方法,供大家参考。 二、代码 1.父窗体 /// <summary> /// 使父窗体每次只能显示一个子窗体 /// </s...

似水流年,是谁苍白了等待 2824

别再手动发通知了!用Python+飞书机器人,5分钟搞定自动化消息推送(附完整代码)

本文详细介绍了如何利用Python和飞书机器人实现自动化消息推送,大幅提升工作效率。通过Webhook调用和Python脚本,可以轻松发送告警、日报等各类消息,并与业务系统深度集成。文章还提供了完整代码示例和避坑指南,帮助开发者快速上手。

weixin_28736335的博客 307

一个jframe窗体的实例

package com; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import...

chidewang0569的博客 254

Android13系统设置第三方app为设备所有者

DevicePolicyManagerService.java文件所在目录是frameworks/base,记得将包类名换成自己app的。2. 将拷贝到系统分区下的两个xml文件继续通过init.rc服务拷贝到data/system/目录下并修改权限。1. 拷贝设备所有者和设备管理器两个对应的xml文件到系统分区。

wzh048503的博客 2507

04-协议基础03:USB 2.0信号与电气特性

USB 2.0使用两根差分信号线D+/D-进行数据传输,支持低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)三种速率。USB总线为主从模式,所有事务由Host发起。端电阻值作用HostRpd(D+)15KΩ±5%下拉,默认低电平HostRpd(D-)15KΩ±5%下拉,默认低电平全速设备Rpu(D+)1.5KΩ±5%上拉到3.3V,标识全速低速设备Rpu(D-)1.5KΩ±5%上拉到3.3V,标识低速USB 2.0硬件要点。

内核笔记 104

显示窗体时慎用Dim……as new

错误之一:显示其他子窗体时,报错,只能有一个MDI窗体。原代码:Sub Main() Dim fLogin As New frmLogin '显示登录窗体 Dim fMainForm As New frmMain fLogin.Show vbModal If Not fLogin.OK Then End End If Unload fLoginfMainForm.Show 错误原因:不言自明,一个工程中只能有一个MDI窗体,dim …… as new ,造

姚双双 廊坊师范学院七期信息技术提高班 1836

高通SDX12:ProSLIC Si32185移植调试

高通 SDX12 语音芯片slic 音频驱动 Si32185

不秃头的程序猿Gabriel的博客 2038

C#显示子窗体方法

public static void ShowChildFormInMDI(Form childFrm, Form parentFrm)//显示子窗体         {             if (Application.OpenForms[childFrm.Name] != null)             {                 Application.Op

宜臶瑏芯的博客 2014

【YOLOv8改进-注意力机制】LSKNet(Large Selective Kernel Network ):空间选择注意力

【YOLOv8改进-注意力机制】LSKNet(Large Selective Kernel Network ):空间选择注意力 (论文笔记+引入代码)。LSKNet能够动态调整其大的空间接收场,以更好地模拟遥感场景中各种对象的范围上下文。据我们所知,这是首次在遥感目标检测领域探索大型和选择性核机制。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 2864

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WPF只允许显示一个子窗体

WPF只允许显示一个子窗体 WPF示例: private TestFrm objFrm; private void button_Click(object sender, RoutedEventArgs e) { if (objFrm == null || objFrm.IsVisible == false) { objFrm = new objFrm(); objFrm.Show(); } else { objFrm.Activate(); } } 另:

韬光养晦 1413

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

窗体显示类

窗体在前面已经注冊。而且已经创建出来了,但这时这个窗体并不能出如今我们的眼前,又是什么原因呢?哦,还不显示出来,原来是有原因的,就是窗体有多种状态。窗体能够隐藏、普通显示、最大化显示、最小化显示等。而且创建出来时。不马上显示。也是能够方便一性地创建非常多非常多窗体,最后才一次性地显示出来。另外创建窗体之后在系统看来窗体已经是可用的。这时能够先在窗体上画图。当完毕时再一次性显示出来,也避免窗体不...

weixin_33878457的博客 171

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

winform窗体 【打开多个窗体、窗体之间传值、打开唯一窗体】

1、打开多个窗体 2、窗体之间的传值 3打开唯一窗体 Form1中btn1按钮点击show出Form2,当Form2处于开启状态时,再次点击btn1不会继续弹出窗体,而是将焦点定位至已开启的Form2上;当Form2关闭后,再次点击btn1则会show出一个新的Form2; Form1: //创建一个全局集合,用来放置已经sho...

weixin_30273501的博客 353

VB.Net 两个窗体之间的传值及修改

在做机房收费系统,遇到这样一个问题:在上下机窗体(FrmLoadOnff)中,存在一个文本框(txtCountOnline)显示当前上机的学生数。在查询学生上机状态的窗体中,存在全部学生下机菜单(menuAllLoadoff)、和选中学生下机菜单(menuSelectLoadoff)。界面分别如下: 上下机窗体(FrmLoadOnff):

大道至简 1万+

C#中判断子窗体是否存在

可在父窗体中定义一个全局变量 public static Form form;然后在秀出子窗体的点击事件中增加加下代码if (form == null){ //窗体不存在时,实例化子窗体,并显示出来,CurrentBalance为子窗体名 form = new CurrentBalance(); form.Show();}else{

WithHeartAndSoul的专栏 3389

C# winform判断窗体是否已打开

frm_Set frm_Set; /// <summary> /// 开始检测 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e.

天锋 BLOG 3816

父窗体中操作子窗体的一种方式

见到很好多问怎么样在父窗体中操作子窗体,就把自己写的贴出来,如对大家有用,最好不过.下面的代码功能是这样的:在一个父窗体中,有三个子窗体,打开任一个,将关闭之前打开的子窗体,且不重复打开子窗体,也就是任何时候,父窗体中永远只有一个子窗体.   private void 录入信息MToolStripMenuItem_Click(object sender, EventArgs e)

charcle的专栏 982

C# WinForm 点击按钮显示唯一窗体

C# WinForm点击按钮只显示唯一窗体

qq_43022415的博客 2885

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

首先我们有2个Windows Form,主窗体叫Form1,子窗体叫ChildForm。在主窗体中加入一Menu,用来实例化子窗体,我们在Form1.cs中写入下代码: private static ChildForm childForm; //静态变量,保存唯一实例 private void menuItem2_Click(object sender, System.EventArgs e) {

Holym的网摘 1232
上一篇: winfrom中对xml的读取和修改
下一篇: Transact SQL 常用语句以及函数
普通网友
博客等级 码龄21年 30粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值