Meh*_*dad 10 d tablelayoutpanel
每当我尝试使用D表单库时,我都会遇到它没有的事实TableLayoutPanel- 这使得我几乎不可能创建一个好的GUI.
TableLayoutPanelDFL 有没有实施?
如果没有它,人们通常如何使用这个库?
使用DFL的另一个程序的链接将是答案的一个很好的奖励.:)
作为答案发布,因为长度超过评论长度限制.
我低估了你的问题,因为它是用flamebait元素制定的.我猜你以前使用GUI库的经验主要是支持盒子布局的库,比如Qt.Win32 GUI API本身不提供用于创建框布局的任何基元 - 它使用绝对坐标贯穿始终.在构建于API之上的许多OO库(例如MFC)中,这保持不变.一些库,如VCL,具有用于创建框布局的可选基元(具有对齐和自动大小的面板) - 但最终,所有控件重新定位必须由应用程序或GUI框架完成,因此这样的事情需要从头开始在DFL中实现.
那么,回答你的问题:
TableLayoutPanelDFL 有没有实施?
可能不是.
如果没有它,人们通常如何使用这个库?
他们使用Entice Designer在鼠标上绘制控件.(对于MFC/Visual Studio,VCL/Delphi IDE等也是如此)
回复评论:
如何将东西放在桌子布局中(例如两个并排,一个在下面)?
我知道您希望在底部有一个固定高度的面板,并将剩余空间分成两个区域,这两个区域在调整窗体大小时都保持为窗体宽度的一半.
dock为BOTTOM.适当地设定它的高度.dock为RIGHT. protected override void onResize(EventArgs ea)
{
super.onResize(ea);
panel2.width = this.clientRectangle.width / 2;
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它可能很快变得混乱,以获得更复杂的"橡皮桌".我不打扰,或者如果我真的需要复杂的动态布局,会寻找另一个库.
或者你是说这首先是一个坏主意?
绝对不是我的观点 - 不需要使用IDE构建的语义布局的优点是清晰可见的.只是由于它们的Win32 API根源,Windows GUI库很少提供构建它们的好方法.当然,他们的缺席并不能使构建GUI变得不可能或甚至很难 - 人们通常只使用固定大小的表格等等.(从Windows切换到KDE的最终用户可以清楚地看到这一点 - 大多数KDE对话框都是可调整大小的,而Windows '不是.)