Windows窗体与错误的代码相关联

时间:2015-03-24 18:58:56

标签: c# winforms visual-studio-2013

在Visual Studio 2013中单击表单上的“查看代码”时,仅显示自动生成的设计代码。类似地,如果我尝试通过控件的“属性”窗格的事件部分添加新的事件处理程序,则代码会自动添加到设计器代码中,这显然是不正确的。尝试将事件添加到实际表单代码很好,但它不会让我将它与表单上的控件相关联。但是,以前的所有事件处理程序都保持活动状态并与表单及其控件正确关联。

奇怪的是,解决方案资源管理器中还有另一个空白表单,当单击它时,会转到上面提到的实际表单代码。

我怀疑这个问题是由于我将表单代码从另一个表单复制到解决方案中时引起的(旧的解决方案搞砸了,因为愚蠢的我没有使用版本控制)因此我的关联问题。如果有人能够解释我如何重新获得文件之间的正确关联,那将非常感激。

额外信息 - 解决方案层次结构显示两种形式,一种是空白,一种是实际形式。真实的表单代码文件如下所示。

1 个答案:

答案 0 :(得分:2)

我要检查的第一件事是项目文件;我怀疑你在设计师/代码文件之间有一些不好的映射。您需要右键单击项目并选择Unload Project,然后再次右键单击它并选择Edit XXX.csproj(您也可以在任何其他程序中打开该文件,它只是一个XML文件)。查找包含<ItemGroup>个节点的<Compile>节点;在一个全新的winforms应用程序上,它对于生成的表单看起来像这样:

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

...

确保您的设计器文件依赖于正确的代码文件。