WinForm模态与非模态窗体

1、模态窗体

1)定义:

模态窗体是指当窗体显示时,用户必须先关闭该窗体,才能继续与应用程序的其他部分进行交互。

2)特点:

窗体以模态方式显示时,会阻塞主窗体的操作。用户必须处理完模态窗体上的操作(如点击"确定"或"取消")后,才能返回主窗体。适合用于需要用户立即处理的任务,例如对话框、消息框、设置窗口等。

3)显示方法:

使用 ShowDialog() 方法显示模态窗体。

csharp 复制代码
Form modalForm = new Form();
DialogResult result = modalForm.ShowDialog();
if (result == DialogResult.OK)
{
    // 处理模态窗体的结果
}

4)返回值:

ShowDialog() 返回一个 DialogResult 枚举值,可以用来判断用户的操作(如点击"确定"或"取消")。

2.、非模态窗体

1)定义:

非模态窗体是指窗体显示后,用户可以在不关闭该窗体的同时,继续与应用程序的其他部分进行交互。

2)特点:

窗体以非模态方式显示时,不会阻塞主窗体的操作。

用户可以同时操作多个窗体。

适合用于需要长时间显示或需要与其他窗体同时操作的场景,例如工具箱、属性窗口等。

3)显示方法:

使用 Show() 方法显示非模态窗体。

csharp 复制代码
Form modelessForm = new Form();
modelessForm.Show();

非模态窗体不会阻塞主线程,因此需要特别注意窗体的生命周期和数据同步问题。

如果需要与非模态窗体交互,可以通过事件或公共方法实现。

3.、模态窗体与非模态窗体的对比

4、视频讲解

5、 总结

模态窗体:适合需要用户立即处理的场景,会阻塞主窗体的操作。

非模态窗体:适合需要长时间显示或与其他窗体同时操作的场景,不会阻塞主窗体的操作。

根据具体需求选择合适的窗体显示方式,可以提升用户体验和应用程序的交互性。

相关推荐
huaqianzkh1 天前
WinForm C#:循环修改控件UI闪烁卡顿?SuspendLayout / ResumeLayout 与 BeginUpdate 优化
开发语言·ui·c#
用户3721574261352 天前
C# 实现 Excel 单元格保护:锁定公式并允许编辑指定区域
c#·ai编程·编程语言
Oll Correct2 天前
Adobe illustrator 案例十三:adidas标志草图绘制
笔记·ui·adobe·illustrator
公子小六2 天前
基于.NET的Windows窗体编程之WinForms数据持久化(1)
windows·microsoft·c#·.net·winforms
三雷科技2 天前
第6章第4节:自定义分词器
开发语言·c#
FungLeo2 天前
成为全栈·Vue 管理后台篇·Vue3 + Vite + Naive UI:后台工程基座怎么搭
前端·vue.js·ui·typescript·vite·前端工程化·biome
zhanghaha13142 天前
C# 系列教程_12 字符串 string 保姆级系统教程(面向新手,大量示例 + 原理讲解)
开发语言·数据库·c#
Coder_Shenshen3 天前
罗克韦尔ACD工程归档离线变量树解析
算法·c#
寂寞的船3 天前
【Unity知识速递】第10期 Unity GC 零分配实战:从 UnityEngine.Pool 到手动 GC 控制的全链路优化
jvm·unity·c#·游戏引擎·lucene
敲上瘾3 天前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3