[英]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.