我有一个带有多个标签的窗体。我希望有一个类型" TabPage"这将保留每个选项卡,我想在声明时初始化它。我已经尝试了
TabPage[] tabs = {Tab1, Tab2};
TabPage[] tabs = new TabPage[]{Tab1, Tab2};
TabPage[] tabs = new TabPage[2]{Tab1, Tab2};
但它都不起作用。
此外,我尝试迭代选项卡控件中的每个选项卡,以某种方式将它们添加到数组中,但似乎没有" ToArray()" " Tab_Control.TabPages"中的方法集合和制表符数组没有" AddRange"方法
如何在数组声明中初始化标签页,如何将它们添加到数组post声明中?
答案 0 :(得分:2)
TabPageCollection已经是IList和IEnumerable。应该就够了。
如果您需要简单的数组语法,可以试试这个:
var tabs = new[] {tabPage1, tabPage2};
答案 1 :(得分:1)
似乎没有" ToArray()" " Tab_Control.TabPages"中的方法 集合。
要从标签控件中获取一系列标签页,您可以使用:
var pages = tabControl1.TabPages.Cast<TabPage>().ToArray();
您还可以使用ToList()
方法返回List<TabPage>
,它比数组更灵活。
另请注意,您应该在InitializeComponents
之后或以Load
形式编写此代码。
您不能以这种方式在表单级别初始化tabs
字段:
TabPage[] tabs = new TabPage[] { tabPage1, tabPage2 };
您将收到编译器错误:
字段初始值设定项不能引用非静态字段,方法或 property&#39; tabPage1&#39;
但是你可以在表单级别TabPage[] tabs
定义数组字段,然后在Form Load中或在InitializeComponents之后的构造函数中定义值,为数组赋值:
tabs = new TabPage[] { tabPage1, tabPage2 };