vb的 mdi窗口的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb的 mdi窗口的问题相关的知识,希望对你有一定的参考价值。

我运行程序后··mdi窗体中就会自动显示form1
我本来是准备三个按钮
按1时 显示form1
按2时 显示=orm2
按3时 显示form3
可每次运行程序··form1 就会自己显示···
怎么办?
我修改了什么autoshowchildren=false
没用

在工程属性中将默认的启动窗口设为mdi窗体就行了。 参考技术A 首先你要明白什么是MDI窗体:
MDI窗体是一个父窗体,其它form窗体都是MDI窗体的子窗体,程序运行后最先显示的是MDI窗体也就是父窗体,其它form窗体根据你选择的菜单按钮来显示。
你说你准备了3个按钮用来显示三个子窗体,可是MDI窗体上是不能放按钮控件的,你是怎么实现的呢,我不明白。

我建议你这样做:
1)打开VB后,先添加一个MDI窗体
2)再添加3个form窗体
3)将form窗体的MDIchild属性设为TRUE,这样普通form就可以变成MDI子窗体了。
4)在MDI窗体上创建菜单,利用“工具”下的菜单编辑器,菜单的设计你随意,菜单实际上也是按钮,因此你最少需要设计3个菜单,每个菜单下的代码就是form1.show
form2.show
form3.show
5)更改工程属性,将工程的启动窗体设置成MDI窗体,这样一开始运行的就只有MDI窗体了,其它form窗体只有你单击菜单后才能出现。
参考技术B 工程-工程 属性,你看里面的启动对象是不是form1?把它改成mdiform吧。。

vb6中如何实现类似MDI子窗体的窗体

即点击了子窗体,主窗体仍然不失去焦点,就是让子窗体和父窗体同时具有焦点。
或者类似输入法那种窗体,点了Form2,Form1仍然具有焦点响应事件。我是想做个Tip窗口,又不想让他影响到主窗体。
别说Form2.show 0,me,我不是想要个模式窗口。

用下面的api 把一个非模式窗口指定为某窗口的子窗口
Public Declare Function SetParent Lib "user32" _
(ByVal hWndChild As Long, _
ByVal hWndNewParent As Long) As Long追问

这个效果不是MDI那种,两个窗体都有焦点,点了Form2后,Form1就失去焦点了。
谢谢你的回答。

参考技术A vb6本来就可以实现MDI功能
1. 添加“mdi窗体”(一个应用程序中只能有一个)
2. 其它窗体的“mdichild”属性设为“true”
参考技术B “子窗体和父窗体同时具有焦点。”是实现不了的。 参考技术C 你要是想这样的话,不要使用父、子窗体,就使用一般的窗体。

以上是关于vb的 mdi窗口的问题的主要内容,如果未能解决你的问题,请参考以下文章

vb MDI窗体怎么用?麻烦告诉我

vb里面怎么创建MDI窗体

vb中怎样将一个窗体设为MDI的子窗体

VB里窗体嵌套的问题,请教高手!

如何检查窗口是不是为 MDI 窗口?

如何使 MDI 子窗口保持在其兄弟窗口之上?