Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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# 已将现有表单添加到项目中,但无法识别或使用_C# - Fatal编程技术网

C# 已将现有表单添加到项目中,但无法识别或使用

C# 已将现有表单添加到项目中,但无法识别或使用,c#,C#,我能够将现有表单添加到项目中,并查看代码和可视化表单本身。但我添加此表单的C#项目不承认此表单。我试图通过将表单名称放入Program.CS,使其成为运行项目时打开的表单,但它出现了错误,因为它无法识别表单名称,并抱怨可能缺少引用或依赖项。我以前总是在VB中这样做,没有任何问题。所以我试图找到我需要添加什么样的引用或依赖项,以及将其放在哪里等等,但我什么也没找到 这里没有可复制的代码,因为它非常基本和通用。我创建了一个新项目并删除了项目默认表单1。然后,我使用add->existingitem将

我能够将现有表单添加到项目中,并查看代码和可视化表单本身。但我添加此表单的C#项目不承认此表单。我试图通过将表单名称放入Program.CS,使其成为运行项目时打开的表单,但它出现了错误,因为它无法识别表单名称,并抱怨可能缺少引用或依赖项。我以前总是在VB中这样做,没有任何问题。所以我试图找到我需要添加什么样的引用或依赖项,以及将其放在哪里等等,但我什么也没找到

这里没有可复制的代码,因为它非常基本和通用。我创建了一个新项目并删除了项目默认表单1。然后,我使用add->existingitem将来自任何其他简单项目的现有表单添加到项目中。我还尝试在visual studio外部复制.cs、.resx和Designer.cs表单文件,然后添加现有文件

“使用System.Windows.Forms”和“使用System.Drawing”在项目中。很明显,我遗漏了一些东西,MS使这个问题变得更加复杂和加密。我想他们一定是在处理“外部”表单,比如一些独立类之类的东西。有人能帮我吗???不可能那么难。你能不能用另一个项目的一些表单名和一些新的项目名组成一个例子,并展示为使这个表单与你在这个新项目中可能创建的任何其他表单一样而必须做的一切。。。换言之,它可以被使用

谢谢大家!

VH


谢谢你的回复!所以我想没有办法让添加的表单取代原来的表单????您知道,不会显示为类类型(绿色),而是好像添加了某种模板表单并使其成为原始表单。我只是希望能够将现有表单用作可重用表单,这样我就不必用所有按钮等重新生成相同的表单。你知道,就像类的用途一样……)

问题最有可能的原因是现有表单的名称空间,它几乎肯定与您试图从中打开表单的代码的名称空间不同

为表单提供完整的名称空间,如MyProject1.namespace.Form1,应该可以解决这个问题


VB项目可以有一个稍微不同的实现:在项目设置中指定了一个默认名称空间,因此许多开发人员不能用一个附加名称空间限定VB项目中的所有类(包括表单)。

问题最可能的原因是现有表单的名称空间,这几乎肯定与您试图从中打开表单的代码的命名空间不同

为表单提供完整的名称空间,如MyProject1.namespace.Form1,应该可以解决这个问题


VB项目可以有一个稍微不同的实现:在项目设置中指定了一个默认名称空间,因此许多开发人员不能用一个附加名称空间限定VB项目中的所有类(包括表单)。

问题最可能的原因是现有表单的名称空间,这几乎肯定与您试图从中打开表单的代码的命名空间不同

为表单提供完整的名称空间,如MyProject1.namespace.Form1,应该可以解决这个问题


VB项目可以有一个稍微不同的实现:在项目设置中指定了一个默认名称空间,因此许多开发人员不能用一个附加名称空间限定VB项目中的所有类(包括表单)。

问题最可能的原因是现有表单的名称空间,这几乎肯定与您试图从中打开表单的代码的命名空间不同

为表单提供完整的名称空间,如MyProject1.namespace.Form1,应该可以解决这个问题


VB项目可以有一个稍微不同的实现:在项目设置中指定了一个默认名称空间,因此许多开发人员不能用一个额外的名称空间限定VB项目中的所有类(包括表单)。

我通过创建两个新项目进行了测试。一个称为“TestHasFormToAdd”,另一个称为“TestAddingForm”。我仔细地将每个项目中的原始表单分别命名为“FormToAdd”和“OrigForm”。我通过添加FormToAdd.CS文件从“TestHasFormToAdd”添加了现有表单“FormToAdd”。然后我打开Program.cs文件并添加了以下内容:使用TestHasFormToAdd;这是添加的表单代码下的名称空间。然后,我可以从以下位置更改打开表单的行:

Application.Run(新的OrigForm());到

运行(新FormToAdd())

然后我删除了这行:使用TestHasFormToAdd;并更改了应用程序。运行行为:

运行(新的TestHasFormToAdd.FormToAdd())


在我运行程序时,这两种方法都起了作用,我添加的表单也出现了并起了作用

我做了一个测试,创建了两个新项目。一个称为“TestHasFormToAdd”,另一个称为“TestAddingForm”。我仔细地将每个项目中的原始表单分别命名为“FormToAdd”和“OrigForm”。我通过添加FormToAdd.CS文件从“TestHasFormToAdd”添加了现有表单“FormToAdd”。然后我打开Program.cs文件并添加了以下内容:使用TestHasFormToAdd;这是添加的表单代码下的名称空间。然后,我可以从以下位置更改打开表单的行:

Application.Run(新的OrigForm());到

运行(新FormToAdd())

然后我删除了这行:使用TestHasFormToAdd;并更改了应用程序。运行行为:

运行(新的TestHasFormToAdd.FormToAdd())


在我运行程序时,这两种方法都起了作用,我添加的表单也出现了并起了作用

我做了一个测试,创建了两个ne
<Compile Include="Form1.cs">
  <SubType>Form</SubType>
</Compile>

<Compile Include="Form1.Designer.cs">
  <DependentUpon>Form1.cs</DependentUpon>
</Compile>

<EmbeddedResource Include="Form1.resx">
  <DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Form1.cs">
  <SubType>Form</SubType>
</Compile>

<Compile Include="Form1.Designer.cs" />

<EmbeddedResource Include="Form1.resx">
  <SubType>Designer</SubType>
</EmbeddedResource>