【机房收费系统】—— VB中在MDI主窗体上添加控件

 

一、问题描述

最近做到上下机,找不到控制上机的窗体,后来突然发现上机的窗体就是窗体加载时显示在首页的窗体啊,但这些控件貌似是放在MDI主窗体上的。但是——小编惊讶的发现,放不上去!

二、解决方法

1、使用PictureBox

后来发现只有PictureBox控件可以放在主窗体,恰好可以在PictureBox上放控件,但是一运行,小编又惊讶的发现其他的子窗体不见了!后来发现,原来是子窗体跑到了PictureBox的后面,被挡住了!此时可以用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 About_Click()
    SetParent FrmAbout.hwnd, Frmmain.hwnd
    FrmAbout.Show
End Sub

2.另建一个子窗体

然后突然想到我的学生信息管理系统,当时为了让学生系统每次都只能显示一个窗体,并且每次打开一个窗体后都自动关闭另一个窗体,但由于报错的原因,主窗体上必须保留一个窗体,所以让一个子窗体一直显示在主窗体的界面,以此达到想要的效果。这样虽然达到了想要的效果,但是我感觉这种方法还是一定的缺陷,欢迎有更好解决办法的小伙伴与小编交流分享!

三、最后

为学正如撑上水船,一篙不可放缓!               ——宋•朱熹

原文地址:https://www.cnblogs.com/txge/p/13973633.html