单文档(SDI)和多文档(MDI)

2023-11-07 14:11
文章标签 文档 sdi mdi

本文主要是介绍单文档(SDI)和多文档(MDI),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在 Windows 中,文档分为单文档(SDI)和多文档(MDI)两种,如我们熟悉的“记事本”就是一个典型的单文档程序,它最明显的特点是一次只能打开一个文件,当新建一个文件时,当前文件自动被替换掉。

多文档界面,如 Word ,允许用户同时打开多个文件进行操作。在多文档界面中,有一个窗体叫做主窗体(又称为 MDI 窗体),其他窗体称为子窗体。子窗体始终处在主窗体内部,主窗体的位置移动会导致子窗体的位置发生相应变化。如图一:

VB教程第二十三课 - 爱水人 - “小水花”信息教学博客
图一

一、多文档程序的建立:
多文档程序至少有两个窗体,一个主窗体和一个子窗体或多个子窗体,主窗体是其他窗体的容器。

1、创建一个新工程,然后选择工程/工程属性菜单命令,加入如图二的主窗体:

VB教程第二十三课 - 爱水人 - “小水花”信息教学博客
图二

2、在“项目”窗口中双击 Form1 切换到 Form1 ,然后将其 MDIChild 属性设为 True ,如图三:

VB教程第二十三课 - 爱水人 - “小水花”信息教学博客
图三

3、按 F5 键运行程序,结果如图四:

VB教程第二十三课 - 爱水人 - “小水花”信息教学博客
图四

4、控制程序的打开状态:
如果要让程序打开时自动载入 Form1 窗口,那么在如图五的工程属性窗口中选择“启动对象”为 Form1 ;如果不想显示子窗体,那么只需在“启动对象”中选择 MDIForm1 就行了。

VB教程第二十三课 - 爱水人 - “小水花”信息教学博客
图五

5、子窗体的显示:
假设工程的启动对象为 MDIForm1 ,那么如何显示子窗体 Form1 呢?

可以在主窗体中加入菜单,或者直接用 Load 的方法,如下:

Private Sub MDIForm_Load()
Form1.Show 0
End Sub

这段代码将 Form1 显示出来,并呈非模态模式。

二、主窗体与子窗体的标题:
当主窗体与子窗体都呈显现状态时,把子窗体最大化,你会发现窗体的标题变成了主窗体标题加上子窗体标题,如图六:

VB教程第二十三课 - 爱水人 - “小水花”信息教学博客
图六

三、主窗体与子窗体的菜单:
在 VB 中,如果子窗体载入,那么主窗体的菜单将被子窗体的菜单替换;只有当主窗体中没有子窗体时才能显示主窗体的菜单,如图七、图八、图九、图十:

VB教程第二十三课 - 爱水人 - “小水花”信息教学博客
图七

VB教程第二十三课 - 爱水人 - “小水花”信息教学博客
图八

VB教程第二十三课 - 爱水人 - “小水花”信息教学博客
图九

这篇关于单文档(SDI)和多文档(MDI)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/364163

相关文章

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生

浅谈Redis Key 命名规范文档

《浅谈RedisKey命名规范文档》本文介绍了Redis键名命名规范,包括命名格式、具体规范、数据类型扩展命名、时间敏感型键名、规范总结以及实际应用示例,感兴趣的可以了解一下... 目录1. 命名格式格式模板:示例:2. 具体规范2.1 小写命名2.2 使用冒号分隔层级2.3 标识符命名3. 数据类型扩展命

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析