Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Tab控件-从TabPage继承?_C#_Tabcontrol_Winforms - Fatal编程技术网

C#Tab控件-从TabPage继承?

C#Tab控件-从TabPage继承?,c#,tabcontrol,winforms,C#,Tabcontrol,Winforms,基本上,我正在创建一个带有Tab控件的Windows窗体,我想为我将要编辑的不同类型的对象创建多种类型的Tab页。基本上类似于VisualStudio中的界面,在这里您可以有多个代码标签页,然后是多个资源文件标签页,等等 为此,我认为我需要: 为我想要的每种类型的TabPage布局创建一个继承自TabPage的类 使这些类中的每一个都接受构造函数中特定类型的对象 在构造函数中,为该选项卡页创建所有控件并设置属性 但是,这意味着我无法在VisualStudio中设计选项卡页面(我需要手工编写布局代

基本上,我正在创建一个带有Tab控件的Windows窗体,我想为我将要编辑的不同类型的对象创建多种类型的Tab页。基本上类似于VisualStudio中的界面,在这里您可以有多个代码标签页,然后是多个资源文件标签页,等等

为此,我认为我需要:

  • 为我想要的每种类型的TabPage布局创建一个继承自TabPage的类
  • 使这些类中的每一个都接受构造函数中特定类型的对象
  • 在构造函数中,为该选项卡页创建所有控件并设置属性
  • 但是,这意味着我无法在VisualStudio中设计选项卡页面(我需要手工编写布局代码)


    我这样做对吗?或者有不同的方法来解决这个问题吗?

    您是否考虑过为要显示的每种类型的页面创建自定义控件?然后,您可以使用Visual Studio设计每个自定义控件的布局(以及每个选项卡的任何代码),而不是使用不同类型的选项卡,并且在创建新选项卡时,使其唯一的子控件成为相关类型的自定义控件的实例

    优势

    • 这允许您使用VS设计选项卡内容的外观
    • 如果您想在其他地方重复使用选项卡内容的UI,它已经与选项卡控件解耦(例如,如果以后改用windows而不是选项卡,这甚至会有所帮助)

    另见我同意。然后,您还可以向这些自定义控件添加一些属性,例如您想要什么样的图标、要添加的特殊工具栏和其他内容,并在将选项卡添加到tabcontrol时用代码处理这些属性。