复制/粘贴复制后显示为代码文件的表单

时间:2017-10-14 20:05:50

标签: c# .net winforms visual-studio-2017

我曾尝试在VS 2017中复制并粘贴C#表单,我需要包含代码,但在Visual Studio中重命名表单后,它只显示为C#代码而不是表单。它编译没有任何错误,但我无法编辑表单。

enter image description here

我尝试在资源管理器中复制粘贴重命名所有3个文件,然后将它们包含在项目中并显示“show all files”,并将表单仅作为c#代码文件而不是表单广告到项目中

1 个答案:

答案 0 :(得分:1)

要理解它创建一个新项目并通常添加Form1和Form2。然后将另一个表单(我们将其命名为form3).cs,.designer.cs和.resx文件复制粘贴到项目中。现在转到Windows资源管理器中的项目,然后在文本编辑器中打开PROJECT.csproj文件。你会看到:

<Compile Include="Form1.cs">
  <SubType>Form</SubType>
</Compile>
<Compile Include="Form2.cs">
  <SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
  <DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Form2.Designer.cs">
  <DependentUpon>Form2.cs</DependentUpon>
</Compile>
<Compile Include="Form3.cs">
  <SubType>Form</SubType>
</Compile>
<Compile Include="Form3.Designer.cs" />

如您所见,我们对Form3.Designer.cs与Form3没有任何依赖关系。

我们也有:

<EmbeddedResource Include="Form1.resx">
  <DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Form2.resx">
  <DependentUpon>Form2.cs</DependentUpon>
</EmbeddedResource>

这取决于.resx文件到它们的形式,但我们没有它用于Form3。

要拥有普通的Form3,您必须将其更改为与Form1和Form2完全相同。 但正如quetzalcoatl所说,最好创建新表单并仅复制/粘贴所需表单的内容。

更新

作为一种简单的方法,您可以首先通过以下方式在项目中创建Form3(复制/粘贴表单):

  

添加 - &gt;新物品

现在您已经拥有.csproj文件中所需的一切,而且无需编辑。然后将 windows explorer 中的3个文件.cs .designer.cs和.resx复制/替换为您的项目。