2011-06-27 18 views
3

当BorderStyle设置为bsNone时,即使AutoScroll为True且某些子控件位置超过ClientWidth/ClientHeight值,TForms通常也不会显示滚动条。如何让TForm在BorderStyle = bsNone时显示滚动条?

那么,即使BorderStyle设置为bsNone,是否有任何方法/ hack“强制”TForm显示滚动条(当需要时)?

回答

8

将一个TScrollBox放在窗体上,使其对齐=客户端,将所有的控件放在滚动框中。

我总是使用TScrollBox,因为它非常灵活。您可以将顶部对齐的面板添加到窗体(滚动框外),并且您有一个非滚动区域。整个表单滚动并不总是有帮助,它几乎从未看起来不错。

+0

更好:把你的(孩子)表单代替框架。然后,您的mainform将是一个带有TScrollbox的空表单(与客户端对齐),然后将任何childform加载到滚动框中。 –

+0

@Wim,我不明白你的建议。谁在谈论儿童表格? –

+0

即使在单一形式的项目中,为mainform使用框架也是实用的。框架可以放在滚动框内,常规形式或其他任何首选项。它允许窗体重用,因此一个框架可以在一个窗体内部和一个滚动框中的其他地方作为大屏幕的一部分。因此,更灵活... –