vb如何设置父窗体与子窗体——MDI窗体_vb 双层mdi_夏诗曼CharmaineXia的博客-程序员秘密

技术标签: Visual Basic  

目前我理解的父窗体与子窗体的关系是:父窗体包含子窗体。
在这里插入图片描述
想要达到这样的效果,首先要新建一个父窗体(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
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CharmaineXia/article/details/106491431

智能推荐

该站点安全证书的吊销信息不可用,是否继续?_hinzer的博客-程序员秘密

 问题描述:安装typing master10 后,打开后出现这个“安全警报”,很烦人,一直不能关掉。 原因:种现象一般不会涉及到正真的所谓安全问题,只不过是一种突发性的系统认证错误。 解决办法:在IE浏览器中-工具-Internet选项,点击“高级”,不勾选“检查发行商的证书是否吊销”和“检查服务器证书是否已吊销*”,再点击“应用”即可应用...

XXL-JOB分布式任务调度平台_xxljob集群调度器是轮询调度吗_种下星星的日子的博客-程序员秘密

概述      XXL-JOB是一个轻量级分布式任务调度框架,开箱即用。特性简单:通过Web页面操作简单易用。任务实时监控,可查看任务执行日志。动态:可以动态修改任务状态,暂停或恢复任务,也可以终止进行中的任务。路由策略:第一个,最后一个,轮询,随机,分片广播,故障转移等。邮件报警:任

Bert抽取词向量进行工程运用 | 如word2vec一般丝滑_bert提取词向量_TFknight的博客-程序员秘密

应用场景:QA对话系统|检索系统任务: 希望能够在数据库中找到与用户问题相似的【句子对|词语】,然后把答案返回给用户。这篇就是要解决这个问题的。方法: 下面提供两个方法,一个是基于google 开源的bert,另一个是基于pytorch-transformer1. BERT 语义相似度BERT的全称是Bidirectional Encoder Representation from Transformers,是Google2018年提出的预训练模型,即双向Transformer的E.

汇编语言程序设计(一)_Azad221103的博客-程序员秘密

1.汇编语言概述汇编: 源程序在计算机中不能直接被识别和执行,所以需要经过翻译,产生机器代码,这种翻译过程称为汇编;源程序: 用汇编语言编写的程序;助记符: 选用了一些能反映机器指令功能的单词或词组来代表该机器指令。这些选出来的单词称为助记符。汇编语言: 是一种用于微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操...

ubuntu 开机显示recovering journal死机的解决方法_眺望塔的博客-程序员秘密

问题:错误信息:/dev/sdb2 recovering journal原因:我的电脑有2个硬盘,第二块盘由于异常导致掉盘并且重新插拔也识别不到,但我又在/etc/fstab里添加了系统开机时的识别信息导致开机失败解决方法:编辑/etc/fstab文件并删除第二块盘的信息:...

Kylin的metadata备份_metastore.sh backup 备份元数据_weixin_43829157的博客-程序员秘密

Kylin的metadata备份元数据是Kylin中最重要的数据之一,备份元数据是运维工作中至关重要的环节。本篇主要介绍如何备份Kylin元数据,方便数据恢复和迁移。1. Kylin元数据1.1 Kylin元数据介绍Kylin组织所有的元数据(cube、cube_desc、model_desc、project、table等)作为一份层次的问加你系统,然而Kylin默认使用HBase来进行...

随便推点

华为m30pro最近升级是鸿蒙吗,华为mate30pro升级鸿蒙系统_weixin_39833429的博客-程序员秘密

华为mate30pro升级鸿蒙系统,想要升级到最新系统的用户们直接通过这个刷机包就可以完成了,一键就能轻松体验到最新的鸿蒙2.0系统,非常的好用,整个系统升级后,就让你的手机焕然一新,目前已经有不少用户们都升级成功了,刷机包大小也就只是4GB左右,所以不会占用你手机太多的内存,大家有兴趣就别错过了,欢迎大家来下载。华为mate30pro升级鸿蒙系统特点:1、升级到最新系统后,通知栏也有了新的位置变...

【神经网络】卷积神经网络CNN【含Matlab源码 1932期】_海神之光的博客-程序员秘密

1 神经元神经元是人工神经网络的基本处理单元, 一般是多输入单输出的单元, 其结构模型如图1所示.其中:xi表示输入信号;n个输入信号同时输入神经元j.wij表示输入信号xi与神经元j连接的权重值, bj表示神经元的内部状态即偏置值, yj为神经元的输出.输入与输出之间的对应关系可用下式表示:图1 神经元模型。

TabLayout+ViewPager不显示_红地毯前吃泡面的博客-程序员秘密

条目少时不显示,有很大原因是adapter的getPageTitle()返回了null,重写adapter的getPageTitle()方法,或者在tabLayout.setupWithViewPager(viewPager)之后,再调用tabLayout.addTab(),一般能解决。条目多,并且getPageTitle()、addTab()都无效,那么有很大的原因是tabMode的属性被...

学习MyBatis-plus(二)--条件构造器_条件构造器不包含in_洋哥在线写BUG的博客-程序员秘密

学习MyBatis-plus(二)条件构造器说明:以下出现的第一个入参boolean condition表示该条件是否加入最后生成的sql中以下代码块内的多个方法均为从上往下补全个别boolean类型的入参,默认为true以下出现的泛型Param均为Wrapper的子类实例(均具有AbstractWrapper的所有方法)以下方法在入参中出现的R为泛型,在普通wrapper中是String,在LambdaWrapper中是函数(例:Entity::getId,Entity为实体类,getId为

推荐文章

热门文章

相关标签