【问题标题】:C# design view won't load graphical elements in winformC# 设计视图不会在 winform 中加载图形元素
【发布时间】:2015-11-11 21:35:48
【问题描述】:

我为客户创建了三个独立的应用程序,客户最终要求将这些应用程序收集到一个屏幕中,他们可以从中启动他们想要的任何应用程序。为此,我基本上创建了一个带有三个按钮的简单表单的新项目,然后将调用任何子应用程序的代码,然后我将每个项目的代码复制到主应用程序中。

应用程序可以工作,但由于某种原因,设计文件发生了一些奇怪的事情,它们将不再加载到设计器视图中 - 也就是说,如果我尝试在设计视图中打开它们,我只会看到一个空表单。

如果我运行该程序,一切都会像以前一样工作。表单按原样显示并且没有错误 - 但客户要求在特定位置添加一个新按钮,这让我不得不手动编辑 .Designer.cs 文件并移动十几个标签、按钮和文本框以适应新增的...

我不确定到底出了什么问题。没有错误,正如我所说,程序可以顺利编译和运行。由于某种原因,设计器文件没有折叠在表单文件下,但似乎位于解决方案资源管理器中的外部:

我不知道这是一个线索还是一个无关的故障。

我尝试从头开始创建一个新表单并将代码从 Designer.cs 文件复制到新表单中,以尝试查看它是否会加载数据并让我对其进行编辑,但它不起作用。

是否有任何方法可以强制设计器重新加载设计器文件中的所有元素?

【问题讨论】:

    标签: c# winforms visual-studio visual-studio-2012


    【解决方案1】:

    您不应直接编辑设计器文件。很容易把事情搞砸。您应该使用图形编辑器。不知道你做了什么,但你搞砸了。我会还原它并直接在表单编辑器中进行更改。

    关于设计器文件不在表单文件下的问题, 在您的项目文件中,您需要将该设计器文件标记为依赖于另一个。

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

    这可能丢失了。

    【讨论】:

      【解决方案2】:

      太棒了! 这确实解决了问题

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

      在跨项目重复使用/复制表单并手动更改表单代码和设计器的命名空间时有时会发生这种情况

      【讨论】:

        猜你喜欢
        • 2012-06-18
        • 2016-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-03
        • 1970-01-01
        • 1970-01-01
        • 2016-12-09
        相关资源
        最近更新 更多