我有一个关于 DevExpress 的 TPanels 和 TcxSplitter 布局的问题。 panellayout http://pp.kpnet.fi/bengtsson/temp/layout.png
主窗体有一些面板 A 到 G。A - F 收集在一个面板 ABCDEF 中。 ABCDEF 包含 3 个面板: AB、CDE 和 F。 面板CDE包含面板CD。
在面板之间的所有限制之间,有一个来自 DevExpress 的 TcxSplitter。 问题是用户可以将 ABCDEF 和 G 之间的分离器移动到左侧,以便到达面板 AB 并覆盖面板 CDE。我不想允许这种情况发生。
相反,我希望面板 CDE 的最小宽度为 5 像素。那么面板AB的宽度应该缩小。希望我解释得足够好:) 我尝试在面板 CDE 上设置constraint.minwidth = 5,但面板仍然可以隐藏。也许 Devexpress 有一些很好的解决方案?
问候
最佳答案
cxSplitter 具有 MinSize 属性,从我在测试应用程序中看到的情况来看,调整大小时会尊重它。由于只有 1 个 MinSize 属性,因此会检查拆分器两侧的面板,因此您不能为拆分器的一侧指定最小 50 个像素,为拆分器另一侧的面板指定 100 个像素。但请确保 AutoSnap 属性为 false。
但是拆分器上还有一个 OnCanResize 事件,因此您也可以防止在那里调整大小。
此外,由于您使用的是 devex,我建议您使用 dockSite/dockPanel 或 LayoutControl v2,而不是普通的 Delphi TPanel。
关于delphi - 带分离器的面板布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2294724/