2016-09-08 116 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

只是开玩笑 - 我输入的内容和评论一样。很高兴见到你,一直没有联系过(我搬到其他地区)。希望你过得很好! –