2017-07-03 74 views
0

我有TabControl,其中有多個選項卡。我需要一個功能,如果我'拖動一個標籤'或'右鍵單擊標籤 - >浮動'然後該標籤從標籤列表中出來,併成爲自由浮動窗口(或一個winform),可以在任何地方移動屏幕。和副Versa。有什麼辦法可以浮動TabControl的TabPage?

下面是TabControl-

TabControl tabControl = new TabControl(); 
TabPage tabPage1 = new TabPage();  
tabPage1.Text = "Tab Page 1"; 
TabPage tabPage2 = new TabPage(); 
tabPage2.Text = "Tab Page 2"; 
tabControl.Controls(tabPage1); 
tabControl.Controls(tabPage2); 
+0

不可能直接。而不是TabPages設計UserControls並將其添加到Tab控件。然後,您可以將它們從網頁中刪除,刪除網頁並將其添加到表單,另一種形式或其他形式。 - 比使用任何類型的面板好得多,因爲您現在可以使用Designer。請注意,您需要創建適合的操作系統來訪問該功能。這是一件好事,如果有點乏味.. – TaW

回答

0

代碼,請使用以下代碼swaping製表頁面控件到窗體,反之亦然。請注意,不是將控件添加到Tab-Page中,您需要先在面板中添加控件,然後將該面板添加到Tab_Page中:

private void Button1_Click(object sender, EventArgs e) 
    { 

     TabPage tabPage1 = (TabPage) sender; 

     Form frm = new Form(); 
     frm.Text = tabPage1.Text; 

     Panel panel = (Panel) tabPage1.Controls[0]; 
     tabPage1.Controls.RemoveAt(0); 
     tabControl.TabPages.Remove(tabPage1); 

     frm.Controls.Add(panel); 
     frm.Show(); 

    } 

    private void Form1_Click(object sender, EventArgs e) 
    { 

     Form frm = (Form) sender; 
     TabPage tabPage1 = new TabPage(); 

     tabPage1.Text = frm.Text; 

     Panel panel = (Panel)frm.Controls[0]; 
     frm.Controls.RemoveAt(0); 
     tabControl.TabPages.Add(tabPage1); 

     frm.Controls.RemoveAt(0); 
     frm.Hide(); 

    } 
相關問題