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、 总结

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

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

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

相关推荐
光泽雨2 小时前
动画生命周期
c#·wpf
波力海苔夹心脆6756 小时前
C# StringBuilder 详解:字符串拼接为什么总说要用它?
开发语言·笔记·c#·.net·字符串·stringbuilder·入门教程
淡海水6 小时前
06-03-源码-时间分片与调度策略
unity·c#·gc
丑梨数据7 小时前
法律合同知识库怎么搭:从图片压缩到私有化 RAG 的工程笔记
开发语言·笔记·c#
1-1=08 小时前
.NET Core 输出日志
c#·.net·.netcore
曹牧8 小时前
C#里引用ActiveX控件
开发语言·c#
宇卿.8 小时前
C#委托详解
开发语言·c#
努力,努力再努力9 小时前
零依赖 C# Office 库到底怎么用——四个场景讲透 Wisdom.Office
c#
特立独行的猫a9 小时前
AI时代的应用开发神器:cj-tauri 已支持鸿蒙 PC,第一次的踩坑记录
ui·harmonyos·tauri·仓颉·鸿蒙pc·cj-tauri
2501_9307077812 小时前
使用C#代码在 PDF 文档中创建交互操作
pdf·c#·交互