2011-08-28 55 views
6

是否可以将控件锚定到另一个控件?是否可以将控件锚定到另一个控件?

可以说我想让我的Button1与Textbox1控件保持4px的距离,没有
使用FlowLayoutTable控件?

"Why would be this advantageous?" - one could ask 

那么可以说你有一个垂直分割一个SplitContainer的,你有文本框
在SplitContainer.Panel1被固定在左,右,但其最大尺寸的
宽度小于你允许的SplitContainer.Panel1的宽度有(也许
因为你希望文字显示有或者是因为额外的填充或什么的,你的名字)

现在让我们假设你也有一个按钮旁边的Textbox1的,你不想Textbox1的到是
由Button1重叠的,因为它延伸到远处。

如果我想有我文本框填写SplitContainer.Panel1的方式,它让空间
Button1的控制,同时还是两者都被锚定到如何将我做的对吗?

+0

很难从问题中形象化。锚适合简单的布局。通过订阅SplitterMoving事件或控件的LocationChanged或SizeChanged事件并更改Location或Size属性来实现自定义布局。 –

+0

@Hans谢谢,我认为这将是一种解决方法或更可能的正确方法来做到这一点,我只是想知道这是否可能,但你的回答引发了我的另一个问题,我可能会或可能不会问这里或在另一个问题:) – Qqbt

+0

@Hans你的问题解雇了一个事件,我打电话给你WithEvents,我在听:) – Qqbt

回答

5

我广泛使用TableLayoutPanels和FlowLayoutPanels来实现这一点。对于你的具体情况,我会使用一个TableLayoutPanel,每个TextBox有三列和一行。

第1列:自动宽度,包含全部为AutoSize = True的标签。
第2列:宽度为100%,包含文本框全部为Anchor = Left, Right
第3列:自动宽度,在适当的行中包含Button。

接下来,我设置了所有文本框,除了按钮旁边的那个,ColumnSpan = 2。然后,将TableLayoutPanel放置在SplitPanel中并设置为Dock = Fill

0

它将是一个应该从左边流出并继续工作的现场序列,让右侧应该是布局。

  1. 应提供清单项安全护理。
  2. 列表项应该提供所有在这个方法中使用的东西并且检查;
相关问题