以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]SplitContainer收缩时panel1大小会变化  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=134016)

--  作者:chnfo
--  发布时间:2019/4/25 14:49:00
--  [求助]SplitContainer收缩时panel1大小会变化

本意是切换节点时,SplitContainer 中的panel2收缩和展开。

但在展开和收缩过程中,发现panel1的宽度有一些变化,会感觉屏幕在闪动。哪里的代码有问题呢

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:伸缩窗口.zip


--  作者:有点蓝
--  发布时间:2019/4/25 15:03:00
--  
Dim sc As WinForm.SplitContainer = e.Form.Controls("SplitContainer1")
e.Form.StopRedraw
Select Case e.Node.Name
    Case "点A展开","点C展开"
        e.Form.panel.parent.parent.parent.width = 350
        sc.Panel2.Collapsed = False
    Case "点B收缩"
        e.Form.panel.parent.parent.parent.width = 150
        sc.Panel2.Collapsed = True
    Case "点C展开"
End Select
e.Form.ResumeRedraw

--  作者:chnfo
--  发布时间:2019/4/25 15:17:00
--  
仅仅只是添加了StopRedraw和ResumeRedraw,并不能解决问题。
可以看到在三个树节点间切换时,导航控件的宽度有比较小的变化。
有什么办法能保持导航控件的宽度不变呢

--  作者:有点蓝
--  发布时间:2019/4/25 15:21:00
--  
不仅仅只是添加了StopRedraw和ResumeRedraw,仔细看代码
--  作者:chnfo
--  发布时间:2019/4/25 15:51:00
--  
我看了,一个是先设窗口宽度,然后再伸缩和展开;二是加了暂停界面绘制的代码
实际在点节点的时候,确实navibar的宽度在变化。
而且里面的树控件的宽度也有变化。

我就是想让树控件的宽度让用户感觉没有变化

--  作者:有点蓝
--  发布时间:2019/4/25 15:56:00
--  
没有办法