繁体   English   中英

在声明时初始化tabpage数组

[英]Initializing tabpage array at declaration

我有一个带有几个标签的窗体。 我希望有一个类型为“TabPage”的数组,它将保存每个选项卡,我想在声明时初始化它。 我已经尝试过了

TabPage[] tabs = {Tab1, Tab2};
TabPage[] tabs = new TabPage[]{Tab1, Tab2};
TabPage[] tabs = new TabPage[2]{Tab1, Tab2};

但它都不起作用。

此外,我尝试迭代选项卡控件中的每个选项卡,以某种方式将它们添加到数组中,但似乎“Tab_Control.TabPages”集合中没有“ToArray()”方法,并且tabs数组没有“ AddRange“方法。

如何在数组声明中初始化选项卡页面,如何将它们添加到数组post声明?

TabPageCollection已经是IList和IEnumerable。 应该就够了。

如果您需要一个简单的数组语法,您可以尝试这样做:

var tabs = new[] {tabPage1, tabPage2};

似乎“Tab_Control.TabPages”集合中没有“ToArray()”方法。

要从选项卡控件中获取一系列选项卡页,您可以使用:

var pages = tabControl1.TabPages.Cast<TabPage>().ToArray();

您还可以使用ToList()方法返回List<TabPage> ,它比数组更灵活。
另外请记住,您应该在InitializeComponents之后编写此代码,或者例如以Load形式编写。


您无法以这种方式在表单级别初始化tabs字段:

TabPage[] tabs = new TabPage[] { tabPage1, tabPage2 };

您将收到编译器错误:

字段初始值设定项不能引用非静态字段,方法或属性“tabPage1”

但是您可以在表单级TabPage[] tabs定义数组字段,然后在Form Load中或在InitializeComponents之后的构造函数中,为数组赋值:

tabs = new TabPage[] { tabPage1, tabPage2 };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM