3

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

我可以看到dockstyle枚举具有None,Top,Bottom,Right,Left和Fill的值......

如何设置右下角???

4

5 回答 5

7

也许您不想将其停靠在右下角。停靠会改变控件的位置,但也会改变大小以适应表单的高度或宽度。

如果你想让它保持在右边和下边,锚定它。删除左右锚点并添加底部和右侧锚点。您的控制将保持在那里!

** 编辑 ** 根据 OP 评论,它必须在底部并占据所有宽度并具有固定高度。那么你必须采取以下步骤:

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

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

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

于 2012-05-24T14:56:29.007 回答
3

使用锚样式:

yourComponent.Anchor = ((System.Windows.Forms.AnchorStyles)
                       ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
于 2012-05-24T14:56:39.163 回答
0

尝试将 Dock 设置为底部,根据您的控件,您可能必须关闭自动调整大小,例如标签

于 2012-05-24T15:24:26.330 回答
0

来自MSDNControl.Dock文档:

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

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

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

于 2012-05-24T14:59:38.210 回答
0

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

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

nTopPadding可以是你需要的任何东西。对于文本框、标签等,ControlA.Font.Height效果最好。

这也适用于AutoSize = true. 您只需要根据需要更新填充。

于 2018-12-26T22:11:51.960 回答