当TreeView的节点打开时,如何永不显示滚动条,而是控件的高度、宽度发生变化? (200分)

  • 主题发起人 主题发起人 gameabc
  • 开始时间 开始时间
G

gameabc

Unregistered / Unconfirmed
GUEST, unregistred user!
TreeView的节点expand开后,如果高度超过自己的Height,会自动出现滚动条。
请大侠指点,如果让它宽度或者高度变大,而不是出现滚动条?
如何编写一个触发该事件OnCanvasResize的代码?
 
ShowScrollBar(TreeView1.Handle,SB_HORZ,false);//隐藏水平滚动条
ShowScrollBar(TreeView1.Handle,SB_VERT,false);//隐藏垂直滚动条
或 ShowScrollBar(TreeView1.Handle,SB_BOTH,false);//隐藏所有滚动条

>“让它宽度或者高度变大”
如果大出了窗体尺寸怎么办?
 
我的程序中,宽度不会变。高度如果高出窗体尺寸,我的程序里还有一个滚动条拉动整个的控件
用ShowScrollBar(TreeView1.Handle,SB_VERT,false);//隐藏垂直滚动条
ShowScrollBar(TreeView1.Handle,SB_BOTH,false);可以把竖的滚动条掩藏了
但是ShowScrollBar(TreeView1.Handle,SB_HORZ,false)不能把水平的隐藏

还有就是节点收缩的事件与计算Tree的高度。请问如何解决?
非常感谢
 
应该是一个子窗口!

登录信息可以自动保存的。所以直接触发“登录”按钮即可。
“登录”按钮应该是登录子窗口的子窗口。
 
对不起,上面发错了!
 
可能有难度。

展开时,不断扩大宽度和高度,然后判断滚动条的可视情况。
收缩时,进行相反的处理。

或根据可视节点自己计算树的高度和宽度。
 
这样做可能有点傻,很有点非要横着竹竿过城门的味道,
如果一页显示不下你怎么办呢?截掉?
 
如果一页显示不下,我可以自己做个下翻的,让TreeView的Top不断上移
 
如果你先调用ShowScrollBar(TreeView1.Handle,SB_HORZ,false)就可以隐藏掉水平滚动条,
但之后调用 ShowScrollBar(TreeView1.Handle,SB_VERT,false)则无法隐藏掉垂直滚动条,
无法两全,
使用SB_BOTH时大概是先SB_VERT再SB_HORZ,所以就出现你说的那种情况。
到底是故意如此还是不小心,那就只能问微软了,咱又看不到源码;
Borland其实很无辜,只是调用了它。
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部