D表单库TableLayoutPanel?

Meh*_*dad 10 d tablelayoutpanel

每当我尝试使用D表单库时,我都会遇到它没有的事实TableLayoutPanel- 这使得我几乎不可能创建一个好的GUI.

TableLayoutPanelDFL 有没有实施?
如果没有它,人们通常如何使用这个库?

编辑:

使用DFL的另一个程序的链接将是答案的一个很好的奖励.:)

Vla*_*eev 6

作为答案发布,因为长度超过评论长度限制.

我低估了你的问题,因为它是用flamebait元素制定的.我猜你以前使用GUI库的经验主要是支持盒子布局的库,比如Qt.Win32 GUI API本身不提供用于创建框布局的任何基元 - 它使用绝对坐标贯穿始终.在构建于API之上的许多OO库(例如MFC)中,这保持不变.一些库,如VCL,具有用于创建框布局的可选基元(具有对齐和自动大小的面板) - 但最终,所有控件重新定位必须由应用程序或GUI框架完成,因此这样的事情需要从头开始在DFL中实现.

那么,回答你的问题:

TableLayoutPanelDFL 有没有实施?

可能不是.

如果没有它,人们通常如何使用这个库?

他们使用Entice Designer在鼠标上绘制控件.(对于MFC/Visual Studio,VCL/Delphi IDE等也是如此)


回复评论:

如何将东西放在桌子布局中(例如两个并排,一个在下面)?

我知道您希望在底部有一个固定高度的面板,并将剩余空间分成两个区域,这两个区域在调整窗体大小时都保持为窗体宽度的一半.

  1. 在Entice Designer中,放置一个Panel,将其设置dockBOTTOM.适当地设定它的高度.
  2. 放置第二个面板,将其设置dockRIGHT.
  3. 在表单的代码中,添加以下方法:
    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 '不是.)


rat*_*eak 1

如果缺少表格布局,您可以使用位置和大小属性在板上放置东西(甚至可以实现您自己的表格布局)

您可以使用诱饵设计器来制作 GUI 并在生成的源代码的基础上进一步构建