vb如何设置父窗体与子窗体——MDI窗体

简介: vb如何设置父窗体与子窗体——MDI窗体

目前我理解的父窗体与子窗体的关系是:父窗体包含子窗体。

想要达到这样的效果,首先要新建一个父窗体(MDI窗体)。

MDI窗体上又不允许放置PictureBox以外的控件,但是Picture上面就能放置控件,所有只要先在窗体上铺上一张图片,在把控件放置在图片上就可以。

运行时会发现提示“只允许存在一个MDI窗体”,这种错误我翻阅了前辈的博客,发现是sub Main里的一句代码导致的。

Sub Main()
    Dim flogin As New frmlogin
    flogin.Show vbModal          'flogin显示模式窗口'
    If Not flogin.ok Then
        End
    End If
    flogin.Hide
    '将下面这两句屏蔽即可,然后再添加一句MDIFrmmain.Show'   
    Set fmain = New MDIFrmmain
    fmain.Show                  '显示主窗体'
End Sub

运行程序后又会发现子窗体都隐藏在了图片下面,此时可以用API函数来解决这个问题:

第一步:

外接程序——外接程序管理器

第二步:

找到API函数,选择“在启动中加载”与“加载/卸载”

第三步:

选中系统的模块Module1——外接程序——API浏览器——加载文本文件——WIN32API.TXT——打开

第四步:

搜索SetParent——添加——插入

第五步:


可以看到Module1中出现了这句代码:Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long


这句代码要放在模块里


第六步:

此时在MDI窗体里在对应的子窗体中写如下代码:运行一下,就会惊喜的发现成功了!

Private Sub Return_card_Click()
    SetParent frmReturn_card.hwnd, MDIFrmmain.hwnd
    frmReturn_card.Show
End Sub
'或者'
Private Sub Check_balance_Click()
    Call SetParent(frmCheck_balance.hwnd, MDIFrmmain.hwnd)
    frmCheck_balance.Show
End Sub
相关文章
vsftp的默认目录那点事
   1、vsftpd 的默认根目录是/var/ftp/ 默认配置下,匿名用户登录vsftpd 服务后的根目录是/var/ftp/ 如图:的对应关系   2、系统用户登录  (vsftpd 服务后的根目录是系统用户的家目录。
4390 0
|
10月前
|
Java 数据安全/隐私保护 开发者
【潜意识Java】深入理解 Java 面向对象编程(OOP)
本文介绍了Java中的面向对象编程(OOP)核心概念,包括封装、继承、多态和抽象。封装通过访问控制保护数据,提高安全性;继承支持代码复用,减少冗余;多态实现灵活的行为调用;抽象则隐藏细节,简化接口设计。掌握这些概念有助于编写高效、灵活且易于维护的代码。文章通过实例详细讲解了每个概念在Java中的应用,并总结了它们的优势。
485 3
|
存储 数据安全/隐私保护 索引
设计一个完美的用户角色权限表
设计一个完美的用户角色权限表
1189 1
|
11月前
|
安全 数据挖掘 关系型数据库
开发一套医院LIS系统需要考虑哪些因素?
医院检验信息管理系统(LIS)通过将实验仪器与计算机联网,实现样品登录、数据存取、报告审核及打印、数据分析等流程的智能化、自动化和规范化管理,提升实验室管理水平,减少错误,提高检验质量。
449 2
开发一套医院LIS系统需要考虑哪些因素?
|
数据挖掘 OLAP OLTP
深入解析:OLTP与OLAP的区别与联系
【8月更文挑战第31天】
3062 0
|
设计模式 程序员 C#
C# 使用 WinForm MDI 模式管理多个子窗体程序的详细步骤
WinForm MDI 模式就像是有超能力一般,让多个子窗体井然有序地排列在一个主窗体之下,既美观又实用。不过,也要小心管理好子窗体们的生命周期哦,否则一不小心就会出现一些意想不到的小bug
1118 0
|
安全 API C#
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
531 0
|
XML API 数据格式
微信PC版的API接口
微信PC版的API接口
1023 0
|
JavaScript
Nodejs中process.cwd()与__dirname的区别
首先,上官方解释。 => process.cwd(): The process.cwd() method returns the current working directory of theNode.js process. 上面的意思就是,process.cwd()返回的是当前Node.js进程执行时的工作目录。
4623 0