簡體   English   中英

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

[英]How to dock a child control to bottom right of the parent control?

與父控件相比,如何將子控件停靠在右下角?

我可以看到dockstyle枚舉的值為None,Top,Bottom,Right,Left和Fill ...

我如何設置右下角的???

也許您不想將其停靠在右下角。 停靠會更改控件的位置,還會更改其大小以適合表單的高度或寬度。

如果要使其向下和向右移動,請將其錨定。刪除左和上錨,並添加下和右錨。 您的控制權將保持不變!

**編輯**根據OP注釋,它必須在底部並采用所有寬度並具有固定高度。 那么您必須執行以下步驟:

為了保持整潔,您至少需要2個控件:

  • 它在底部:將其停靠在底部並設置其高度。
  • 另一種使用對接樣式的Fill。 這樣就占用了底部控件未占用的所有空間。

如果您在設置時遇到問題,請使用“布局窗口”(我希望這是英文名稱。我的VS已本地化)來移動它們,直到它起作用為止。 有時,將其停靠有點麻煩,使它按自己喜歡的方式工作的唯一方法是使用此布局窗口更改控件的order nad嵌套。

使用AnchorStyles:

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

MSDN文檔中的Control.Dock

控件可以停靠在其父容器的一個邊緣,也可以停靠在所有邊緣並填充父容器。

因此,您不能停靠在兩個邊緣上-我實際上不確定您的意思。

如果要將控件保留在屏幕的右下方,則可能需要考慮Anchor 屬性 ,該屬性確實允許您設置多個邊緣以將控件錨定到該屬性

嘗試將Dock設置為Bottom,根據您的控件,您可能需要關閉自動尺寸調整功能,例如標簽

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

  1. 將ControlA停靠在父級的右側 ControlB
  2. 將ControlA的頂部填充設置為ControlA.Padding = new Padding(0, ControlB.Height - nTopPadding, 0, 0);

nTopPadding可以是您需要的任何內容。 對於TextBoxes,Label等, ControlA.Font.Height效果最好。

AutoSize = true時,這也適用。 您只需要根據需要更新填充。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM