【问题标题】:Can not view the form designer in vb.net无法在 vb.net 中查看表单设计器
【发布时间】:2011-06-23 18:09:09
【问题描述】:

我使用 MS Visual Studio 2010。我之前确实打开了设计器并查看了同一个文件 A 的表单。但是经过一些小改动后,无法再查看表单designer.vb,只能查看designer.vb中的代码。即使我回到原源,我仍然无法打开设计器!!

错误是: 无法为此文件显示设计器,因为无法设计其中的任何类。设计人员检查了文件 A 中的以下类 - 无法加载基类 BaseClass。确保程序集已被引用且所有项目均已构建。

我检查了文件 A 继承自 BaseClass。 BaseClass 形式简单,设计者可以查看。我有一个成功的构建。实际上,我可以正确运行程序。我什至尝试删除 bin 和对象然后构建,但没有任何帮助。

我有很多文件无法在 Designer.vb 中打开。这要死我了!那我该如何更改表格呢?直接写代码到designer.vb?但是很多人建议不要直接在designer.vb中写代码

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    使用 Project + Add Class 将类添加到您的项目中,不要将它们放在表单的源代码文件中。如果您必须将它们添加到底部或嵌套在表单类中,请不要将它们放在表单类声明之前。表单类必须是第一个。

    【讨论】:

    • 感谢您的回复。对不起,我不太明白你。什么是表单类声明?我没有在项目中添加或删除任何文件,因此我可以查看设计器的先前版本的顺序与当前版本相同。
    • 不添加文件是问题所在。在源代码中找到“Public Class Form1”,其中“Form1”是表单名称。不要在它前面放任何东西。
    • 嗨,我们来做一个具体的例子。我有一个名为“主选项卡”的文件。它包含 3 个表单文件。我发现设计师只能打开第一个表单。你是这个意思吗?但是,我无法将第二个表单移到第一个表单前面,因为“目标文件夹与源文件夹相同”。还有就是每次我要修改一个表单,都需要移到第一个?
    • 一个文件没有3个表单文件。每个表单有两个文件,form.vb 和 form.designer.vb 文件。 form.vb 文件包含您修改的源代码,通常通过向其添加事件处理程序。使用 Windows 资源管理器并查看包含您的项目的目录。您似乎不清楚“源代码文件”的概念,不知道我该如何帮助您。考虑从您当地的图书馆中挑选一本关于使用 Visual Studio 进行编程的介绍性书籍。
    • 谢谢!我知道每个表单有两个文件,form.vb 和 form.designer.vb
    【解决方案2】:

    我遇到了同样的问题,要解决它,使用此命令运行程序以清除添加到 VSPackages 中的所有跳过加载选项:

    "C:\Program Files\Microsoft Visual Studio 8.0\Common7\IDE\devenv.exe" /ResetSkipPkgs
    

    【讨论】:

      【解决方案3】:

      单击解决方案资源管理器顶部的“显示所有文件”图标,您将看到 Designer.vb 文件

      【讨论】:

        【解决方案4】:

        当你在表单代码上时,点击查看>设计器,它就会出现。

        【讨论】:

          【解决方案5】:

          就我而言,当我将表单放入命名空间然后将其取出时,问题就出现了。 FrmXYZ.vb 在项目文件中丢失了正确的构建信息。为了修复它,我在解决方案资源管理器中右键单击该项目,选择“卸载”,然后选择“编辑”。我按名称搜索了我的表格。首先,我找到了一个关于 FrmXYZ.Designer.vb 的编译部分。如下所示:

          <Compile Include="Forms\FrmXYZ.Designer.vb">
             <DependentUpon>FrmXYZ.vb</DependentUpon>
          </Compile>
          

          这一切都很好。然后下一部分是针对表单文件 FrmXYZ.vb。这是我的问题。它读了,

          <Compile Include="Forms\FrmXYZ.vb" />
          

          我将其更改为以下内容以使 Visual Studio 知道它是一个表单:

          <Compile Include="Forms\FrmXYZ.vb">
            <SubType>Form</SubType>
          </Compile>
          

          然后我保存文件,关闭文件,右键单击项目,然后选择“重新加载项目”。

          问题已解决(对我而言)。

          【讨论】:

            【解决方案6】:

            您也可以尝试这样做:

            • 关闭所有UI设计页面
            • 清洁解决方案
            • 构建解决方案
            • 打开所需的 UI 设计页面

            这可能有帮助,也可能没有帮助,但它确实解决了我项目中的相同问题。

            【讨论】:

              【解决方案7】:

              我也遇到过在我的项目的解决方案中显示 xxx.Designer.vb、xxx.resx 和 xxx.vb 的情况。为了解决这个问题,我备份了我的解决方案/项目(非常非常重要),然后我删除了在解决方案资源管理器中为我的项目找到的 3 个 xxx 文件。然后,我从备份中选择并复制了 3 个 xxx 文件,并使用 Windows 资源管理器将它们粘贴到我的项目文件夹中。 (确保您粘贴到的文件夹是您的解决方案中显示的文件夹。粘贴后我回到项目,然后到原始 xxx 文件所在的文件夹,右键单击该文件夹并单击添加 - 现有项目. 然后只点击 xxx.vb 文件。已修复。希望这对你有用。

              【讨论】:

                【解决方案8】:

                我终于可以通过这样做在设计器中查看表单了:

                在我的 form_designer.vb 中,

                现有代码:

                Inherits Base_Class 'Base_Class 是在我的项目中定义的

                改为:

                Inherits Form '窗体由windows定义

                然后我可以在设计器中查看表单!!!

                当然,由于继承不正确,我无法成功构建文件。但是我可以先在form_designer中编辑,然后改回'Inherits Base_Class'并构建或编译

                【讨论】:

                • 试试这个来帮助你#If DEBUG Then Public Class BaseGRIDForm #Else Public MustInherit Class BaseGRIDForm #End If
                【解决方案9】:

                我遇到了同样的问题,虽然我的问题是因为我混淆了我的项目文件。经过去混淆和重建后,它似乎工作了。

                【讨论】:

                  【解决方案10】:

                  我解决了这个问题。问题是 VB 在一个文件夹中保存了一个额外的文件,该文件夹与您用来保存表单的文件夹不同

                  执行以下操作:

                  1. 在没有加载任何内容的情况下打开 VB
                  2. 转到文件 -> 打开 -> 项目/解决方案(左上角的下拉菜单)
                  3. VB 将向您显示一个与您的文件所在的文件夹不同的文件夹。显示的文件夹之一将与您最初保存的项目同名(例如:Project1)。双击该文件夹以将其打开。您将看到一个以您的项目命名的 *.sln 文件(例如:Project1.sln)。双击打开它
                  4. 现在将显示表单的设计视图!!!

                  关键概念:打开 *.sln 文件 (xxx.sln) 而不是 xxx.Designer.vb、xxx.resx 和 xxx.vb 文件!!! xxx.sln 文件位于不同的目录中(与 xxx.Designer.vb、xxx.resx、xxx.vb 不同)。

                  在我的电脑中,那个神秘的目录是: C:\Users\Gabriel Personal\Documents\Visual Studio 2017\Projects

                  祝你们好运!!!!

                  【讨论】:

                    【解决方案11】:

                    首先,我为我糟糕的英语道歉。

                    这对我有用:

                    如果你在你的项目中添加一个空表单,你可以双击它,你可以看到如下:

                    Public Class Form1
                    
                    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                    
                    End Sub
                    

                    结束类

                    你看不到其他形式的代码,可能是因为这个类已经消失(无法解释原因)

                    只需恢复该类,更改类定义中的表单名称即可。然后,你就可以看到设计师了。

                    【讨论】:

                      【解决方案12】:

                      这是一个老问题,(关于 VS 2010),但是我在 VS 2017 中遇到了同样的问题,谷歌搜索把我带到了这里。 如果您尝试从较旧的 VS 打开项目而不经过升级/转换过程,则此问题也可能出现在 VS 2017 中。例如,如果您告诉 VS 2017 打开文件夹而不是打开解决方案或项目。
                      我注意到,当将其作为文件夹打开时,VS 2017 会尝试按逻辑排列。您甚至可以运行该程序(至少我可以,在这种情况下,它是一个用 VS 2010 编写的 VB 控制台应用程序)。通过双击 Form.VB 文件,我可以看到代码/代码视图,但没有任何组合可以让我看到表单设计器。解决方案是退出并作为现有解决方案重新打开。这导致了正确的转换步骤,现在我可以看到表单/表单设计器以及代码。也许这会对某人有所帮助。

                      【讨论】:

                        【解决方案13】:

                        如果 ???Form.vb 代码中有任何其他类,请确保它们是在 Form 类之后定义的。这解决了我的问题。

                        【讨论】:

                          【解决方案14】:

                          我知道这个帖子可能很旧,但以防万一有人在适当的时候遇到同样的问题,这里是解决方案。

                          1. 在解决方案资源管理器中,单击“yourformname.Designer.vb”以显示缺少的表单设计器的代码布局,这将显示在左侧窗格中 (vs17)。

                          2. 这次双击与步骤 1 中缺少设计器的相同表单,这将在左窗格中显示一个空的代码窗口。

                          3. 在空代码窗口中,键入以下声明:Public Class "yourformname",然后按键盘上的 Enter 键。通过这样做,将在下面自动添加一个结束匹配 End Class。

                          Boom,你的设计师回来了。保存您的编辑并记得投票是否对您有用。仍有问题的任何人都可以在这里回复,我很乐意为您解决。

                          【讨论】:

                            【解决方案15】:

                            如果您不能查看设计而只能查看代码,那么 关闭 VS 转到你的项目目录,在其中找到表单,在任何文本编辑器中打开它,然后在顶部添加类名作为 public

                            Public Class FrmSettings
                            
                            End Class
                            

                            就是这样,现在你可以在 VS design 中查看表单了

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 1970-01-01
                              • 2015-11-24
                              • 2017-02-28
                              • 1970-01-01
                              • 2011-11-15
                              • 2014-03-28
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多