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 Visual Studio将代码写入form1.vb而不是form1.designer.vb_Vb.net_Winforms_Visual Studio 2013_Designer - Fatal编程技术网

Vb.net Visual Studio将代码写入form1.vb而不是form1.designer.vb

Vb.net Visual Studio将代码写入form1.vb而不是form1.designer.vb,vb.net,winforms,visual-studio-2013,designer,Vb.net,Winforms,Visual Studio 2013,Designer,由于某些原因,windows窗体设计器生成的任何代码都会写入my Form.vb类,而不是它所属的Form.designer.vb类。我希望你能帮我找出原因 我删除了尽可能多的代码,并能够通过以下设置重现问题: Namespace MyNamespace public class Form Inherits System.Windows.Forms.Form End Namespace 这实际上是我表单中剩下的所有代码——没有方法/函数/成员。当我删除名称空间声明时,代码再次在Form

由于某些原因,windows窗体设计器生成的任何代码都会写入my Form.vb类,而不是它所属的Form.designer.vb类。我希望你能帮我找出原因

我删除了尽可能多的代码,并能够通过以下设置重现问题:

Namespace MyNamespace
public class Form
    Inherits System.Windows.Forms.Form
End Namespace
这实际上是我表单中剩下的所有代码——没有方法/函数/成员。当我删除名称空间声明时,代码再次在Form1.designer.vb文件中生成


为什么名称空间会干扰Visual Studio的功能?

将名称空间手动添加到designer.vb文件中目前可以正常工作。但是,我不确定visual studio在修改designer.vb代码时是否会在某些操作中删除它。

我只是从头创建了一个新项目,以确保没有任何依赖项或设置干扰。我可以通过向自动生成的Form1类添加“Inherits System.Windows.Forms.Form”和任意名称空间声明来重现这种行为。另一句话:当我生成新类(不是表单)并手动从System.Windows.Forms.Form继承时,也会出现同样的问题。在这种情况下,不会生成designer.vb类,所有属于该类的代码都会写入我的mainclass。在这种情况下,我甚至不需要名称空间来获得这种行为。这使我假设Visual Studio在这两种情况下都无法找到对designer.vb的正确引用。执行此操作时,设计器会返回到旧的VS2002/3行为。回到不支持分部类的时候。类声明中缺少的Partial关键字是它的提示。不同文件中类的所有部分的命名空间必须相同,以便该类实际上被视为同一个类。如果在一个文件中更改名称空间,则还必须在构成该类的所有其他文件(也在设计器文件中)中更改名称空间。设计师不会自动完成这项工作。否则,设计器文件中的类与另一个文件中的类构成不同的类。这就是为什么设计器在主文件中生成代码,因为另一个文件不再与之关联。