记录|同个Form多次打开的问题处理(C# winform)

目录

  • 前言
  • 一、问题描述
  • 二、解决方案
  • 更新时间


前言

参考文章:

问题来源于:项目ZC-24058


一、问题描述

首先,我有个登录窗口FormLogin,但是我的程序中,设置为需要有相关权限才能访问相应界面,如果没有权限,则会跳出登录窗口FormLogin。
问题就来了:这时候,点击多次会出现多个FormLogin登录界面。


二、解决方案

  • 方案:创建个OpenPage()方法,里面遍历目前所有打开的窗口,如果有名为FormLogin的窗口,则激活。否则,创建。
  • 激活:将已经打开的窗体置于前台,使其成为当前活动窗口。这通常通过调用窗体的Activate()方法来实现。当一个窗体被激活时,它将接收到用户的键盘输入和鼠标点击事件。如果窗体已经在前台,再次调用Activate()方法不会改变其状态。
using System;
using System.Windows.Forms;public class MainForm : Form
{public MainForm(){// 初始化主窗体OpenPage(typeof(FormLogin));}private void OpenPage(Type pageType){// 检查指定类型的窗体是否已经打开foreach (Form form in Application.OpenForms){if (form.GetType() == pageType && form.Name == "FormLogin"){// 如果找到了已经打开的窗体,将其激活并返回form.Activate();return;}}// 如果没有找到已经打开的窗体,则创建一个新的实例并打开Form newForm = (Form)Activator.CreateInstance(pageType);newForm.Show();}
}

更新时间

  • 2024.09.24:创建。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/150838.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

vscode下pnpm命令执行不了

今天使用pnpm install 报错,信息如下: 解决方法 一、安装pnpm 用cmd执行命令 npm install pnpm -g 二、用powershell 以管理员身份运行 执行命令 set-ExecutionPolicy RemoteSigned 回到vscode执行 pnpm install已经可以执行了

3D Slicer医学图像全自动AI分割组合拳-MONAIAuto3DSeg扩展

3D Slicer医学图像全自动AI分割组合拳-MONAIAuto3DSeg扩展 1 官网下载最新3D Slicer image computing platform | 3D Slicer 版本5.7 2 安装torch依赖包: 2.1 进入安装目录C:\Users\wangzhenlin\AppData\Local\slicer.org\Slicer 5.7.0-2024-09-21\bin&#xff0…

UE4_Niagara基础实例—使用自定义参数

实现的功能:使用自定义的参数来调整粒子远离发射器后粒子大小的变化 效果图: 操作步骤: 1、创建Niagara系统,使用Simple Sprite Burst模板作为新系统的发射器,更名为NS_Custompara。 2、双击打开Niagara系统编辑界面…

闰年判断-C语言

1.问题: 判断某一年是否是闰年。 2.解答: 闰年是公历中的名词,分为普通闰年和世纪闰年,普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年;世纪闰年:公历年份是整百数的,必…

5个被低估的Huggingface工具

Hugging Face Hub 拥有超过 85 万个公共模型,每月新增约 5 万个模型,而且这个数字似乎还在不断攀升。我们还提供企业中心订阅,可解锁合规性、安全性和治理功能,以及推理端点上的额外计算能力,用于生产级推理&#xff0…

Vue 自定义指令实现权限控制

一. 引言 Vue.js 提供了一种简单、灵活的方式来创建交互式的用户界面。在 Vue.js 中,指令是一种特殊的属性,可以附加到 HTML 元素上以执行一些操作。我们可以使用自定义指令来实现各种功能,比如:权限控制、自动聚焦、拖动指令等等…

网安加·百家讲坛 | 刘寅:人工智能(AI)是解决软件工程问题的“银子弹”吗?

作者简介:刘寅,东南大学电子工程系本、硕,南京大学EMBA,PMP,前科大讯飞技术副总经理,曾就职于中兴通讯、摩托罗拉、趋势科技、初速度等国内、国际名企,多次负责过质量体系从0到1的搭建&#xff…

【研赛A题成品论文】24华为杯数学建模研赛A题成品论文+可运行代码丨免费分享

2024华为杯研究生数学建模竞赛A题精品成品论文已出! A题 风电场有功功率优化分配 一、问题分析 A题是一道工程建模与优化类问题,其目的是根据题目所给的附件数据资料分析风机主轴及塔架疲劳损伤程度,以及建立优化模型求解最优有功功率分配…

「JVS更新日志」智能BI、低代码、逻辑引擎9.25功能更新说明

项目介绍 JVS是企业级数字化服务构建的基础脚手架,主要解决企业信息化项目交付难、实施效率低、开发成本高的问题,采用微服务配置化的方式,提供了 低代码数据分析物联网的核心能力产品,并构建了协同办公、企业常用的管理工具等&am…

【C++掌中宝】用最少的话让你全方位理解内联函数

文章目录 引言1. 什么是内联函数2. 工作原理3. 内联函数的编程风格4. 使用限制5. 内联函数与宏的比较6. 优缺点7. 何时使用内联函数8. 补充9. 总结结语 引言 在C编程中,函数的调用开销是程序运行效率的一个重要影响因素。为了解决频繁调用函数时的性能问题&#xf…

人工智能助力阿尔茨海默症治疗:微软与上海精神卫生中心的新研究

最近,微软研究院与上海市精神卫生中心合作,基于微软 Azure OpenAI 服务中的多模态大模型,开发了一种名为“忆我”(ReMe)的个性化认知训练框架。这一创新项目旨在通过数字化手段扩展自动化认知训练的范围,为…

如何瞬间建造一个百亿商品的网上商城?借助API,无需逐个上传商品数据,自动对接电商平台百亿商品数据

在快速发展的电商时代,构建一个拥有百亿级商品数据的网上商城曾是许多企业遥不可及的梦想。然而,随着技术的不断进步,特别是电商平台API接口的广泛应用,这一梦想正逐渐变为现实。本文将详细介绍如何通过调用电商平台API接口&#…

用AI绘画年入百万?揭秘高效起始号与现变路径...

part.1 AI绘画的优势 AI绘画的魅力在于其高效和灵活 无论你是通过Midjourney还是Stable Diffusion,只需输入简单的提示词,再加上一些额外的控制调整,AI绘画就能快速生成各种创意内容。角色IP设计、游戏原画、3D场景甚至是天马行空的创意都…

扫雷老年版2.0无猜模式

扫雷老年版2.0无猜模式 打破记录5秒,到达4秒。

Skywalking告警配置

背景 skywalking 9.7.0,地址:Backend setup | Apache SkyWalking helm:skywalking-helm:4.5.0,地址:skywalking-helm/chart/skywalking/values.yaml at v4.5.0 首先来说一下为什么使用skywalking告警? …

Java转换流

转换流 是字符流和字节流之间的桥梁 转换输出流:OutputSteamWriter 转换输入流:InputStreamReader InputStreamReader输入流 package myio;import java.io.*;public class inputsteamread {public static void main(String[] args) throws IOException {InputStreamReader…

基于SSM的家政服务网站【附源码】

基于SSM的家政服务网站(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2 系统结构 4.3. 数据库设计 4.3.1 数据库实体 4.3.2 数据库设计表 4.4 数据表 第5章 系统详细设计 5.1管理员功能模块 5.2用户功能模块 5.3前…

利用低代码快速搭建电商小程序之商品列表页

目标: 搭建商城的一个商品列表页面(先做静态页) 开发环境: 访问白码低代码平台:https://www.bnocode.com/ 白码的新自定义页功能(使用vue框架) 前期准备: 需要先准备商品数据表…

LeaferJS 动画、状态、过渡、游戏框架

LeaferJS 现阶段依然专注于绘图、交互和图形编辑场景。我们引入游戏场景,只是希望让 LeaferJS 被更多有需要的人看到,以充分发挥它的价值 LeaferJS 为你带来了全新的游戏、动画、状态和过渡功能,助你实现那些年少时的游戏梦想。我们引入了丰富…

读论文《OmniGen: Unified Image Generation》

OmniGen演示了在单一框架内执行各种图像生成任务的能力。此外,它还具有推理能力和语境学习能力。 论文地址:2409.11340v1 (arxiv.org) 项目地址:GitHub - VectorSpaceLab/OmniGen 项目目前还不完整,论文展现的通用性十分强大&am…