我有一个恼人的问题。有时,Visual Studio不会为解决方案资源管理器中的某些表单显示“查看设计器”选项。它不显示设计模式错误,只是没有显示使用设计器的选项。当发生这种情况时,我无法弄清楚确切的情况。有没有人对导致解决方案资源管理器行为的原因有所了解?
答案 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)
答案 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遇到相同的问题
我找到了以下解决方案:
执行user2205930建议的解决方法可能会使您将自定义类保持在表单顶部。