簡體   English   中英

Dock-> Top控件的順序問題

[英]Problem with order of Dock->Top controls

C#WinForms:我正在設計我的表單,我有幾個TableLauots。 所以我設計了我的第一個tablelayout,把它扔到面板上並設置Dock-> Top ...然后我設計我的第二個並做同樣的設置Dock-> Top,它再次進入Top並且很好,它放在上一個在頂部...我設計了第三個並設置了它的dock.top並且它在第二個下面是第一個...但是我不知道當我設置時第四個的差異是什么它的dock.top,它改變了其他三個的順序,並在它們之間的位置,它不會被置於第三個...任何想法我應該注意什么?

這取決於您將這些控件添加到其容器的順序。 之前添加的控件將是頂級控件,依此類推......

為了解決它,“剪切”第四個控件並再次“粘貼”到容器中它將占據理想的位置。

解決此問題的另一種方法是修改設計器文件代碼以重新排序將這些控件添加到其容器中。

右鍵單擊控件並選擇“發送到后面”或“置於前面”,或使用“文檔大綱”窗口重新排列項目的Z順序。 在使用大量控件創建WinForms時,Document Outline有很大幫助。

停靠布局基於它們添加到容器的順序。

我通常轉到* .Designer.cs文件並修改InitializeComponent()方法以手動重新排序控件添加到容器的方式。

this.Controls.Add(this.panel1);
this.Controls.Add(this.panel4);
this.Controls.Add(this.panel3);
this.Controls.Add(this.panel2);

此訂單在顯示屏上相反

您必須在“文檔大綱”窗口中組織控件的順序(VIEW - >其他Windows - >文檔大綱(Ctrl + W,U))。 在設計模式下選擇您的表單,您將在樹視圖中看到所有組件。 使用頂部的箭頭選擇所需的順序。

它比剪切和過去更好,因為它可以避免丟失綁定回調。

您可以更改控件的順序以移動到特定索引

containerPanel.Controls.SetChildIndex(Control, n); //sets control to be the Nth element from the bottom

暫無
暫無

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

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