Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在设计模式下打开VB.NET窗体_Vb.net_Visual Studio 2017 - Fatal编程技术网

如何在设计模式下打开VB.NET窗体

如何在设计模式下打开VB.NET窗体,vb.net,visual-studio-2017,Vb.net,Visual Studio 2017,我在Visual Studio 2017中创建了一个VB.NET解决方案。好像我以前在解决方案资源管理器中双击Form1.vb以在设计模式下打开表单,以便添加按钮等 现在无论我做什么,我都无法打开“设计表单”窗口。解决方案资源管理器中的元素似乎较少,但我不确定: 有人能告诉我如何再次打开表单设计器吗?谢谢。这个问题正是我在第一条评论中描述的。只能设计代码文件中的第一种类型。如果ServerForm是在ClientClass之后声明的,则ServerForm不是代码文件中的第一个类型,因此无法对

我在Visual Studio 2017中创建了一个VB.NET解决方案。好像我以前在解决方案资源管理器中双击Form1.vb以在设计模式下打开表单,以便添加按钮等

现在无论我做什么,我都无法打开“设计表单”窗口。解决方案资源管理器中的元素似乎较少,但我不确定:


有人能告诉我如何再次打开表单设计器吗?谢谢。

这个问题正是我在第一条评论中描述的。只能设计代码文件中的第一种类型。如果
ServerForm
是在
ClientClass
之后声明的,则
ServerForm
不是代码文件中的第一个类型,因此无法对其进行设计。您可以在
ServerForm
之后移动
ClientClass
,这样可以解决这个问题,但我建议您首先应该做的事情,并在自己的代码文件中声明
ClientClass

为此,选择整个
ClientClass
定义并将其剪切到剪贴板。右键单击解决方案浏览中的项目,选择添加>新建类并将其命名为
ClientClass
,然后选择新文件中的所有代码并粘贴先前剪切的内容。然后,您应该能够构建项目,现在在设计器中打开表单

我还有两个建议。正如我所说,您似乎已经在代码中重命名了表单。不要那样做。现在,类名和文件名不同步。如果要重命名类型,则还应重命名在其中声明的文件。由于每个文件几乎都应该只有一种类型,因此它们的名称应该相同。如果在解决方案资源管理器中右键单击该项并选择“重命名”,则可以重命名该文件,然后系统将提示您以类似方式重命名该类型,您应该接受该类型


最后,您几乎不应该在类名上使用“Class”作为后缀。您将注意到,
String
类型没有命名为
StringClass
。您确实应该重命名
ClientClass
type
Client
。您可能想详细说明什么类型的客户端,但“Class”后缀不是一个好主意。

您是否在与表单相同的代码文件中声明了另一个类?您是否也更改了代码文件中表单类的名称?根据屏幕截图,看起来您已经完成了这两项工作。可以执行前者,但另一个类必须位于代码文件中的表单之后,而不是之前。不过,最好将每个类保存到自己的文件中。对于后者,也可以,但必须在用户和设计器代码文件中更改名称。不过最好在解决方案资源管理器中更改名称,在这种情况下,系统会提示您更改类名。据我所知,我没有在解决方案资源管理器中更改任何类名、文件名或条目。这是一个相当新的项目,我没有这个需要。解决方案构建得很好,因此在构建时可以找到表单设计。该文件夹包含Form1.Designer.vb和Form1.resx。我可以双击Form1.Designer.vb文件,它将在VS 2017中打开,并指定表单中所有项目的属性和位置。但是我不知道如何打开表单的GUI视图。那么什么是
ClientClass
ServerForm
以及它们在哪里声明?我刚刚找到了大约两周前保存的解决方案副本。如果我打开它并双击form1.vb,它会按预期直接进入表单编辑器。ClientClass是主表单代码使用的信息类,与任何表单都不相关。ServerForm是程序的主要形式,在解决方案资源管理器中列为Form1。它们都在form1.vb中声明。非常好的建议。我遵循了所有这些,现在一切都按照预期进行。谢谢你一直支持我,给了我一个很好的解决方案。