Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/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
.net 表单的附加分部类_.net_Vb.net_Visual Studio 2008_Partial Classes - Fatal编程技术网

.net 表单的附加分部类

.net 表单的附加分部类,.net,vb.net,visual-studio-2008,partial-classes,.net,Vb.net,Visual Studio 2008,Partial Classes,我们有一个大的Form类,我们喜欢使用部分类方法将其拆分为Peace 这可以通过手动修改项目文件并添加MainFormPN.vb条目来完成 <Compile Include="MainForm.vb"> <SubType>Form</SubType> </Compile> <Compile Include="MainForm.Designer.vb"> <DependentUpon>MainForm.vb&l

我们有一个大的Form类,我们喜欢使用部分类方法将其拆分为Peace

这可以通过手动修改项目文件并添加MainFormPN.vb条目来完成

<Compile Include="MainForm.vb">
  <SubType>Form</SubType>
</Compile>    
<Compile Include="MainForm.Designer.vb">
  <DependentUpon>MainForm.vb</DependentUpon>
  <SubType>Form</SubType>
</Compile>
<Compile Include="MainFormPN.vb">
  <DependentUpon>MainForm.vb</DependentUpon>
</Compile>

形式
MainForm.vb
形式
MainForm.vb

这种方法的问题是,当在VS2008 IDE中双击此项时,它会显示新的空表单,而不是MainForm UI。看起来VS2008不支持表单的多个分部类。可以这样做吗?

实际上,使用多个分部类文件可以很好地工作。我以前做过(尽管我不自豪地说……如果你有一个需要拆分成几个文件的单一表单,也许是时候重构你的代码了)

Windows窗体设计器在打开分部类时显示一个空白窗体,这只是Visual Studio的一个特性。只要双击“main”表单文件(在您的例子中是MainForm.vb),它就会正确显示


换句话说,别担心;部分类文件中的代码确实都属于同一类。

另一种可能的方法是将功能组封装到用户控件中。这将封装逻辑,使代码更易于管理(如果操作正确的话),并允许您在没有GUI设计器中的VS和部分表单类的情况下获得相同的效果。

@HansPassant,我几乎所有的工作都是在同一个类中完成的,这真是一团糟。但它是有效的,当使用其他类来分离工作时,速度会变慢,我不得不调用这些类,这很恼人。但归根结底,它是有效的,所以除了一个地方有很多代码之外,还有什么问题吗?