2016-09-08 115 views
3

msdn創建WinForm應用程序一個新的標籤,我發現這一點:Controls.Add被(標籤頁)與TabPages.Add(標籤頁)

string title = "TabPage " + (tabControl1.TabCount + 1).ToString(); 
TabPage tabPage1 = new TabPage(title); 
tabControl1.TabPages.Add(tabPage1); 

但是,當我手動添加一個標籤從Form1.cs的[設計] Visual Studio中自動爲一個新的標籤創建這Form1.Designer.cs:

private System.Windows.Forms.TabPage tabPage1; 
this.tabPage1 = new System.Windows.Forms.TabPage(); 
this.tabControl1.Controls.Add(this.tabPage1); 

所以,tabControl1.Controls.Add(tabPage1)tabControl1.TabPages.Add(tabPage1);之間的主要區別是什麼?

+1

基本上沒有區別5個不同的重載 - [源(http://referencesource.microsoft.com/#System.Windows。表格/的WinForms /管理/系統/的WinForms/TabControl.cs,7bc75a420d7bf90b,引用)。我想前者更方便,因爲它模擬了一個鍵入的「TabPage」列表。 –

回答

3

沒有區別。下面是用於source code方法TabPageCollection.Add

public void Add(TabPage value) { 
    if (value == null) { 
     throw new ArgumentNullException("value"); 
    } 
    owner.Controls.Add(value); 
} 

在上面的代碼中,owner是擁有該TabPageCollectionTabControl

使用TabPageCollection的好處是在其中提供了一種添加標籤頁到TabControl.

+0

雖然不應該使用源代碼(實現)來描述一個類的契約/行爲:) –

+0

@IvanStoev我用它作爲證據;) –

+0

只是開玩笑 - 我輸入的內容和評論一樣。很高興見到你,一直沒有聯繫過(我搬到其他地區)。希望你過得很好! –