回答
您必須重新定義您的標籤頁集合,才能更改標籤頁的索引。
- 創建一個新窗體。
- 創建一個新的TabControl。
- 注意它有兩個TabPage控件,並且TabPage1是第一個選項卡。
- 在窗體的Load事件,添加
this.TabControl1.TabPages.Remove(this.TabPage2)
this.TabControl1.TabPages.Insert(0, this.TabPage2)
- 運行形式。
- 注意TabPage2現在是第一個選項卡。
請注意,如果您無法刪除標籤頁,它仍會顯示在其舊位置。換句話說,您將在同一個標籤頁上有兩個標籤。
thelost是對的。以下是一個快速示例代碼。
我有2片(tabpage1,tabpag2)
然後我聲明兩個的TabPages和現有標籤存儲在其中的一個的TabControl標籤控制。
abPage tbp1 = new TabPage();
TabPage tbp2 = new TabPage();
tbp1 = tabControl1.TabPages[0];
tbp2 = tabControl1.TabPages[1];
然後點擊一個按鈕,我刪除使用
tabControl1.TabPages.Remove(tabControl1.TabPages[0]);
的標籤現在,如果你想改變順序,那麼你將有頂級它的順序添加到標籤
//Order changed
tabControl1.TabPages.Add(tbp2);
tabControl1.TabPages.Add(tbp1);
注意:這是未經測試的快速代碼。
裏面去Designer.cs文件
在那裏,你會發現
/// [Your TabControl Name]
yourTabControl.Controls.Add(yourPage1);
yourTabControl.Controls.Add(yourPage2);
yourTabControl.Controls.Add(yourPage3);
的添加順序是你的TabPages'在TabControl的順序。改變你的意願。刪除並添加TabControl.Controls的功能將幫助您Shoban回答。
不是sendToBack和BringToFront應該改變zorder位置?即,如果直接在此頁面的頂部有一個控件,並且您在頁面上確實帶有ToFront,那麼您將看到該頁面不是之前位於該頁面頂部的對象。這聽起來像是在暗示這些函數會重新排列標籤的位置。 – Chris 2012-06-14 15:22:01
@Chris明天我會檢查,你可能是對的。 – icaptan 2012-06-14 21:56:36
@Chris你說得對,我已經測試過BringToFront。它適用於FlowLayoutPanel,但不適用於TabControl。 – icaptan 2012-06-15 16:47:43
在Initilizacomponent()後面試試。這段代碼可以讓你自由地在.cs文件中編程改變它。
this.tabReceive.Controls.Remove(this.metroTabPage4);
this.tabReceive.Controls.Remove(this.metroTabPage5);
this.tabReceive.Controls.Add(this.metroTabPage4);
this.tabReceive.Controls.Add(this.metroTabPage5);
下面的代碼行也可以做的伎倆,這種解決方案也適用於其他類型的數據有排序的沒有直接的方法: - 轉換到一個列表 - 排序列表 - 把它放回
public static void Sort(TabControl tabControl)
{
var tabList = tabControl.TabPages.Cast<TabPage>().ToList();
tabList.Sort(new TabPageComparer());
tabControl.TabPages.Clear();
tabControl.TabPages.AddRange(tabList.ToArray());
}
public class TabPageComparer : IComparer<TabPage>
{
public int Compare(TabPage x, TabPage y)
{
return string.Compare(x.Text, y.Text);
}
}
多麼美妙的解決方案。 – 2016-02-20 08:19:12
有時我有tabControls與幾個tabPages。在運行時,tabPages會變得不可見(通過刪除它們),然後再次添加。
在此之後,tabPages可能是錯誤的順序。我使用此代碼對它們進行再次排序:
public void ReorderTabPages()
{
// Demo code to reorder tabControl with tabPages
// where some tabPages may be unwanted at the moment
// caution: events like "SelectedIndexChanged" does fire!
// List of wanted tab pages
List<TabPage> wantedTabPages = new List<TabPage>();
// remember the current selected tab
TabPage currentTabPage = this.tabControl.SelectedTab;
// check if all possibly active tabs are currently visible
// check it in the order they should be displayed
// after that they are in the correct order in "wantedTabPages"
if (this.tabControl.TabPages.IndexOf(this.tabPage_01) >= 0)
wantedTabPages.Add(this.tabPage_01);
if (this.tabControl.TabPages.IndexOf(this.tabPage_02) >= 0)
wantedTabPages.Add(this.tabPage_02);
if (this.tabControl.TabPages.IndexOf(this.tabPage_03) >= 0)
wantedTabPages.Add(this.tabPage_03);
if (this.tabControl.TabPages.IndexOf(this.tabPage_04) >= 0)
wantedTabPages.Add(this.tabPage_04);
this.tabControl.SuspendLayout();
// remove all currently visible tab pages
for (int i = this.tabControl.TabPages.Count - 1; i >= 0; i--)
this.tabControl.TabPages.RemoveAt(i);
// add the tabPages in the correct order
foreach (var wantedPage in wantedTabPages)
this.tabControl.TabPages.Add(wantedPage);
// restore the currently selected tabPage
this.tabControl.SelectedTab = currentTabPage;
this.tabControl.ResumeLayout();
}
- 1. 以編程方式更改標籤方向,編程方式
- 2. 以編程方式更改TabBar順序目標C
- 3. Android:以編程方式更改應用程序標籤?
- 4. 以編程方式更改android viewpager標籤標題
- 5. MonoDroid更改活動標籤或標題以編程方式
- 6. 以編程方式添加/更改樣式標籤?
- 7. 以編程方式更改Game Center中的成就順序
- 8. Drupal7:以編程方式更改塊順序
- 9. 以編程方式更改ActionBar圖標
- 10. 以編程方式更改MediaController圖標
- 11. 以編程方式更改UIButton標題
- 12. 以快速編程方式更改標籤欄項目圖像
- 13. 以編程方式更改道路標籤的大小?
- 14. 如何以編程方式更改標籤的字體?
- 15. 以編程方式更改id3標籤版本(pref java)
- 16. 以編程方式更改選定標籤時失控焦點
- 17. 如何以編程方式更改標籤頁?
- 18. 以編程方式更改數據標籤與Highcharts的邊框
- 19. Android標籤問題 - 以編程方式更改內容
- 20. iPhone dev以編程方式更改標籤欄項目視圖
- 21. 以編程方式設置標籤不會更改
- 22. 如何以編程方式更改Tkinter標籤的顏色?
- 23. 如何以ZF1格式更改標籤的順序和輸入?
- 24. 以編程方式MFC Tab鍵順序
- 25. 更改Android Browser以編程方式對其書籤進行排序的方式
- 26. 以編程方式更改視圖高度順利
- 27. mgwt - 以編程方式更改方向
- 28. 以編程方式創建標籤
- 29. 以編程方式切換標籤
- 30. 以編程方式關閉標籤TabHost
redefine?你能詳細說一下嗎?是否像我必須刪除所有可用的標籤,然後按照我想要的順序添加它們? – Aneef 2010-04-01 09:18:39
你可能看到過這樣的東西:tabControl.Controls.Add(tabPage);你必須簡單地改變ControllCollection中的標籤頁的順序(就像你對其他任何一個集合所做的那樣)。 – thelost 2010-04-01 09:29:41
這是我所做的,正如我在我以前的評論中說的那樣刪除它們並重新排序,因爲我想我們可以做一些排序或smt *嘆息*:P,無論如何感謝 – Aneef 2010-04-01 09:51:59