我增加了一些控制,以我的形式,改變了Anchor屬性我怎麼會想到這個工作,但是當我調整窗體在運行時,控制停留在同一個地方。C#Anchor屬性似乎不工作
例如,我有一個表格右下角的兩個按鈕 - 他們是在表格上,沒有容器之類的東西。錨點=下,右。 FormBorderStyle =可調。但是當我在運行時拖動窗體的大小時,按鈕不會移動。
我錯過了什麼嗎?
C#2005
我增加了一些控制,以我的形式,改變了Anchor屬性我怎麼會想到這個工作,但是當我調整窗體在運行時,控制停留在同一個地方。C#Anchor屬性似乎不工作
例如,我有一個表格右下角的兩個按鈕 - 他們是在表格上,沒有容器之類的東西。錨點=下,右。 FormBorderStyle =可調。但是當我在運行時拖動窗體的大小時,按鈕不會移動。
我錯過了什麼嗎?
C#2005
另一種可能性是,你不小心放在你的按鈕不能直接在表格上。相反,你把它們放在一些容器中(例如panel,tableLayoutPanel等),並且這個容器沒有設置其錨定值或對接值是正確的。
只是要絕對確定您應該看看designer.cs並檢查您的按鈕是否直接添加到表格中,或者是否將它們添加到任何其他控件列表(例如panel.Controls.Add()
)中。
如果您想要表單上所有控件的分層概覽,只需打開「文檔大綱」面板即可。 在設計模式下,轉到查看 - >其他窗口 - >文檔提綱 – Mez 2009-10-21 12:35:20
剛剛學到了一些新東西......我不知道'文檔大綱',但我給出了很好的分層概述,並且還支持拖放! – Oliver 2009-10-26 11:11:41
我只是開始瞭解發生了什麼以及如何解決它,但FlowLayoutPanels似乎真的搞亂了錨定行爲。這裏有一些信息,不知道它是多麼當前是https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/how-to-anchor-and-dock-child-controls-in -a-flowlayoutpanel-control – Toadfish 2017-08-28 01:38:52
此外,如果你有自動大小屬性設置它會造成麻煩。
我知道這是一箇舊帖子,但我想盡力提供幫助。
我的問題是,我是加入到我的面板的形式時,父面板有它的大小改變沒有自動調整其大小。
的問題是,我是這樣做的:
form.WindowState = FormWindowState.Maximized; // <-- source of the problem
form.AutoSize = true; //this causes the form to grow only. Don't set it if you want to resize automatically using AnchorStyles, as I did below.
form.FormBorderStyle = FormBorderStyle.Sizable; //I think this is not necessary to solve the problem, but I have left it there just in case :-)
panel1.Controls.Add(form);
form.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
form.Dock = DockStyle.Fill; //this provides the initial size adjust to parent' size.
form.Visible = true;
來解決,我只是評論的第一行//form.WindowState = FormWindowState.Maximized;
和一切工作就像一個魅力。
我有完全相同的問題。
現狀:
TableLayoutPanel
有一排設置爲autosize
。在這一行中,錨定Right,Bottom不起作用。 刪除autoSize
並將其放在一個固定的高度解決了問題,由user428955規定。
我在VS11測試版中遇到同樣的問題。我多次使用錨點,並且它一直運行正常,但現在我無法理解它們發生了什麼,而且不僅僅是 - 碼頭填充不起作用! (不使用自動尺寸或底座屬性)
P.S. (40分鐘後) 現在看起來像我發現問題:我有調整大小事件偵聽器PictureBox和我創建新的圖像爲新的圖片框大小在onResize
處理程序。當我刪除新的圖像創建一切正常!
現在我用SizeChanged
事件,在這個事件處理程序創建新的形象。所以我認爲我不應該改變發件人對象,直到調整大小完成。
我的問題很簡單,
我所有的控件錨屬性設置正確,幷包含在面板內。
但我忘了將錨樣式設置爲容器面板,以便容器面板不會根據表單邊框進行展開,因爲我希望在設置容器面板的錨定屬性後,所有內容都按預期工作。
過去總是爲我工作,所以我猜想你做錯了什麼。你可以發佈一個代碼示例(檢查designer.cs文件) - 或者可能會顯示問題的屏幕截圖。 – 2009-10-21 10:53:40
添加一個新窗體,添加一個按鈕,並將'Anchor'設置爲'Bottom,Right'。如果這真的起作用,那就意味着在你的原始形式中完成事情的方式出現了問題 - 請參閱其他人的解答以找出答案。如果新表格不起作用,我不知道有什麼問題... – awe 2009-10-21 11:44:39