若启动对象是子窗体,MDI窗体AutoShowChildren属性不管是设置true还是false 运行的时候子窗体依旧会出现;若启动对象是父窗体,不管怎么设置子窗体都不会显示,这个属性没起到作用是为什么?
2条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
MDI (Multiple Document Interface) 窗体在 VB6 中是一种多文档界面,它允许一个主窗口(称为母窗体)包含多个子窗体(称为子窗体)。这些子窗体可以独立运行,并且可以在主窗体上进行操作。
MDI 窗体 AutoShowChildren 属性的作用
MDI 窗体的
AutoShowChildren
属性用于控制当子窗体被打开时是否自动显示。默认情况下,这个属性为False
,这意味着子窗体会根据它们的位置自动展开或折叠。为何属性无效
这个问题可能源于两个方面:一个是属性本身的问题,另一个可能是应用程序内部的行为。
属性本身的问题:
- 如果属性设置为
True
,并且子窗体已经打开,则AutoShowChildren
属性不会改变任何东西。 - 设置
False
后,即使子窗体已关闭,也不会触发自动显示行为。
应用程序内部的行为问题:
- 由于子窗体通常不是由 VB6 自动创建的,因此在某些情况下,应用程序可能会尝试将子窗体添加到母窗体上,但并不总是成功。这可能导致
AutoShowChildren
属性在某些情况下不起作用。
解决方案
要解决此问题,你需要确保所有子窗体都是通过 VB6 自动生成的,并且它们已经被正确地添加到主窗体上。此外,确保没有其他错误阻止了子窗体的打开和关闭。
下面是一个示例代码,演示如何在一个 VB6 主窗体上添加子窗体并设置
AutoShowChildren
属性:' 创建一个新项目 Project1 ' 创建一个主窗体 Dim MainForm As New Form MainForm.Text = "Main Form" MainForm.Show ' 添加一个子窗体到主窗体 Sub AddChildWindow() Dim ChildWindow As New ChildForm ChildWindow.Show In MainForm End Sub ' 设置主窗体的 AutoShowChildren 属性 Private Sub MainForm_Load(ByVal sender As Object, ByVal e As EventArgs) ' 将 AddChildWindow 方法添加到 MainForm 的事件表单 MainForm.AddHandler "Load", AddChildWindow, True End Sub ' 重写 Load 事件以显示子窗体 Private Sub MainForm_Load(ByVal sender As Object, ByVal e As EventArgs) AddChildWindow End Sub
在这个例子中,我们首先创建了一个新的 VB6 主窗体
MainForm
并设置了标题。然后,我们在AddChildWindow
函数中创建了一个子窗体ChildForm
并将其添加到主窗体上。接着,在MainForm_Load
函数中,我们将Load
事件绑定到了AddChildWindow
函数上,这样每当主窗体加载时,就会调用AddChildWindow
函数,从而创建并显示子窗体。请确保替换
ChildForm
和AddChildWindow
为你实际使用的子窗体和方法名。解决 无用评论 打赏 举报 编辑记录- 如果属性设置为
悬赏问题
- ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
- ¥15 uniapp的h5项目写一个抽奖动画
- ¥15 TeleScan不能修改bar
- ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
- ¥15 hadoop中启动hive报错如下怎么解决
- ¥15 如何优化QWebEngineView 加载url的速度
- ¥15 关于#hadoop#的问题,请各位专家解答!
- ¥15 如何批量抓取网站信息
- ¥15 Spring Boot离线人脸识别
- ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因