标题:MDI窗体高度的问题
只看楼主
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
结帖率:100%
已结贴  问题点数:20 回复次数:2 
MDI窗体高度的问题
刚遇到的一个诡异的问题。MDI窗口右侧有一个Picture作为容器,中间是TreeView,下面还有一个StatusBar
由于编程和运行环境不同,我在加载MDI的时候,我根据屏幕修改TreeView的高度,代码如下。

Private Sub MDIForm_Load()
'Load FormBasicInfo
StatusBar1.Panels.Add
StatusBar1.Panels.Add
RefreshStatusBar

Picture1.Width = Screen.Width / 10 * 1.5

LoadTrees
End Sub


Sub LoadTrees()
For i = 1 To 200
 Set Opnode = OperationTree.Nodes.Add(, , , " Test" & i)
Next i
For i = 1 To OperationTree.Nodes.Count
 OperationTree.Nodes(i).Expanded = True
Next i
OperationTree.Appearance = cc3D
OperationTree.LabelEdit = 1
OperationTree.Height = Screen.Height - MDIForm1.ScaleHeight - StatusBar1.Height
OperationTree.Width = Picture1.ScaleWidth
OperationTree.Top = 0
OperationTree.Left = 0
OperationTree.Scroll = True
End Sub

问题出来了,我上次运行之后是正常的,但是现在运行发现下面有一块空白,也就是TreeView高度不够。

更为诡异的是,我家中断点调试的话,结果又是正常的。。。。。我都不知道如何查问题调试了
搜索更多相关主题的帖子: 运行环境 
2015-08-10 15:54
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:20 
关键问题在 VB 运行时的 各进程进行的顺序不同。
VB 程序启动,各进程顺序:
1、初始化,Initialize
2、载入:Load
3、大小改变 :Resize

当你在窗口 load 过程中,引用大小等 属性时,引用到的是设计阶段给定的大小数据,因为这时还没有执行 Resize 部分。
当你在 load 过程中,设置断点后,VB会自动在内部执行完 Resize 后再来中断,这里,自己写的代码还在 load 里,Resize 的消息已发出来了,但因为断点的存在,还没及时响应而以。这里 在 load 中取 大小等属性时,就已更新过的大小了。


修改建议,这几句单独放一个响应事件。

Private Sub MDIForm_Resize()
On error resume next
    Picture1.Width = Screen.Width / 10 * 1.5
    OperationTree.Height = Screen.Height - MDIForm1.ScaleHeight - StatusBar1.Height
    OperationTree.Width = Picture1.ScaleWidth
End Sub

授人于鱼,不如授人于渔
早已停用QQ了
2015-08-10 17:04
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:934
专家分:5244
注 册:2015-8-10
得分:0 
受教了,我后来估计是顺序或者加载时间的问题,增加了一个Timer,延时调整TreeView。目前已经解决了。
十分感谢
2015-08-11 09:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-456264-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.380056 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved