VB MDI子窗体如何显示在主窗体的picturebox之上

创建了一个mdi主窗体,上面放了个和窗体一样大小的picturebox,上面有图片和按钮,在程序调试时有show方式显示mdi子窗体时发现子窗体“没有显示出来”,仔细看来... 创建了一个mdi主窗体,上面放了个和窗体一样大小的picturebox,上面有图片和按钮,在程序调试时有show方式显示mdi子窗体时发现子窗体“没有显示出来”,仔细看来下原来是显示了,但是显示在主窗体的picturebox,后面了,被picturebox挡住了,所以看不到。怎么才能让子窗体显示到picturebox的前面呢?希望大侠指教,先谢过了~~~
谢谢 AlphaBlend

那我如果要始终在主窗体中显示一个背景,然后又有其他的子窗体,应该怎么做呢??
展开
 我来答
百度网友e9042513a
2009-04-26 · TA获得超过6984个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:3509万
展开全部
那是做不到的

因为 MDI 程序中

子窗体实际上是位于 MDIClient 里

就是说 子窗体的父窗体 是 MDIClient
而 放置在MDI中 的 picturebox 和MDIClient是同一级的

层次结构
ThunderMDIForm--MDIForm1
--MDIClient
----ThunderFormDC--Form1 子窗体1
----ThunderFormDC--Form2 子窗体2
--ThunderPictureBoxDC MDI中 的 picturebox

如果硬要将子窗体放到上面

只能是

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

SetParent Form1.hWnd, MDIForm1.hWnd

这样就破坏了 Form1的消息循环,程序可以运行,但窗体效果就不对了

MDI主窗体中显示一个背景,是MDI自绘背景
图片应该绘制在MDIClient上,而不能加载picturebox
这个要通过回调才能实现

VB MDI 显示背景图
Private Sub MDIForm_Load()
Me.Picture = LoadPicture("c:\1.bmp")
End Sub

只能显示在左上角
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
uy...6@163.com
2009-04-26 · TA获得超过2074个赞
知道小有建树答主
回答量:664
采纳率:0%
帮助的人:528万
展开全部
给你个例子
Load FormBack '载入窗体Formback
FormBack.Show '显示窗体Formback
FormTxtBox.Visible = False '设置窗体FormtextBox不可见
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天远网络科技
2009-04-26 · TA获得超过140个赞
知道小有建树答主
回答量:567
采纳率:0%
帮助的人:218万
展开全部
用 show 1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雨水沉没
2009-04-26 · TA获得超过142个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:150万
展开全部
Form1.Show
Form1.ZOrder = 0
不知有不有用!给你个方法吧!可以试一下!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式