Visual Studio形成设计师

时间:2009-12-28 16:17:06

标签: c# visual-studio winforms

我有一个恼人的问题。有时,Visual Studio不会为解决方案资源管理器中的某些表单显示“查看设计器”选项。它不显示设计模式错误,只是没有显示使用设计器的选项。当发生这种情况时,我无法弄清楚确切的情况。有没有人对导致解决方案资源管理器行为的原因有所了解?

7 个答案:

答案 0 :(得分:5)

如果源文件中的第一个类是 NOT 表单的“部分类”,则会发生这种情况。在这种情况下,解决方案资源管理器中的文件类型图标最初将显示为表单,但VS将在加载文件后将其更改为“C#”代码图标,并从弹出菜单中删除“视图设计器”选项。至少在VS2015中,这可以通过注释掉有问题的代码并保存文件来解决,此时VS将恢复预期的表单图标。

答案 1 :(得分:4)

我也有这个问题,我修改了.csproj文件来修复它。 在我的.csproj文件中,我修改了这行代码:

<Compile Include="FormName.cs" />

使用此代码:

<Compile Include="FormName.cs">
    <SubType>Form</SubType>
</Compile>

答案 2 :(得分:3)

您的表单可能继承了自定义表单类。

有时候VS没有意识到自定义类继承了Form。 (例如,如果解决方案没有建立)。

尝试重建解决方案。

如果您需要更准确的答案,请提供更多详细信息。

答案 3 :(得分:1)

我曾经在VS 2003中遇到过这个问题。每次发生这种情况时,我都会在记事本中打开.csproj文件,并将类更改回“Form”。

答案 4 :(得分:0)

我遇到了这个问题并找到了解决方案。不知何故,我的.csproj文件已损坏,并且在XML中缺少一个子键。比方说我有一个名为MyControl.cs的UserControl,我在.csproj中的损坏的XML看起来像:

<Compile Include="MyControl.cs" />

我修好了所以它现在写着:

<Compile Include="MyControl.cs">
   <SubKey>UserControl</SubKey>
</Compile>

MyControl.cs读起来(这只是为了完整性):

public partial class MyControl : UserControl
{
}

进行更改并保存后,Visual Studio现在可以正确读取我的控件并加载设计器。我不知道这个文件是如何被破坏的。

答案 5 :(得分:0)

如果文件中有多个类(羞辱你),请确保Form类是文件中的第一个。 (不要问我怎么知道这个。)

答案 6 :(得分:0)

Visual Studio 2017遇到相同的问题

我找到了以下解决方案:

  1. (根本原因):在form1.cs文件顶部添加了自定义类
  2. (症状):现在缺少设计视图(在解决方案资源管理器中右键单击表单类,未显示“视图设计器”)
  3. (解决方案):将Form类移回文件顶部。 “视图设计器”现在可以正确显示

执行user2205930建议的解决方法可能会使您将自定义类保持在表单顶部。