如何将子控件停靠在父控件的右下角?

时间:2012-05-24 14:49:00

标签: c# winforms devexpress docking

与父控件相比,如何将子控件停靠在右下角位置?

我可以看到dockstyle枚举的值为 无,上,下,右,左和填充...

我如何设置右下方???

5 个答案:

答案 0 :(得分:7)

也许你不想把它靠近右下方。停靠会更改控件的位置,但也会更改大小以适合窗体的高度或宽度。

如果你想将它保持在右边并固定它,请将其固定。移动左侧和顶部锚点并添加底部和右侧锚点。你的控制权将保留在那里!

**编辑** 根据OP评论,它必须在底部并取所有宽度并具有固定高度。然后你必须采取这个步骤:

为了保持整洁,您至少需要2个控件:

  • 它位于底部的那个:将它停靠在底部并设置其高度。
  • 使用填充对接样式的其他人。这使得它占据了底部控件未占用的所有空间。

如果您在设置时遇到问题,请使用布局窗口(我希望这是英文名称。我的VS已本地化)移动它们直到它工作。有时对接它有点讨厌,让它按照您喜欢的方式工作的唯一方法是使用此布局窗口更改控件的顺序和嵌套。

答案 1 :(得分:3)

使用AnchorStyles:

yourComponent.Anchor = ((System.Windows.Forms.AnchorStyles)
                       ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));

答案 2 :(得分:0)

来自Control.Dock的{​​{3}} n:

  

控件可以停靠在其父容器的一个边缘,也可以停靠   停靠在所有边缘并填充父容器。

所以你不能停靠两条边 - 我实际上不确定你的意思。

如果你想在屏幕的右下角保留一个控件,你可能会想到Anchor MSDN documentatio,这可以让你设置多个边来将控件锚定到。

答案 3 :(得分:0)

尝试将Dock设置为Bottom,根据您的控制,您可能需要关闭自动调整大小,例如标签

答案 4 :(得分:0)

要在右下角“停靠”,您需要

  1. 将ControlA停靠在父控件ControlB的右侧一侧
  2. 将ControlA的 Top 填充设置为ControlA.Padding = new Padding(0, ControlB.Height - nTopPadding, 0, 0);

nTopPadding可以满足您的任何需求。对于TextBoxes,Label等,ControlA.Font.Height效果最好。

这在AutoSize = true时也有效。您只需要根据需要更新填充。