表单的代码布局规则

时间:2010-05-26 06:57:28

标签: c# .net winforms code-layout

为了调查目的而移动一些代码,我遇到了一个我不知道的.NET的一个小功能,即表单类必须是表单模块中表单设计器工作的第一个类。以下内容阻止了设计师的工作:

public class myClass
{
}

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

...
}

它仍然编译(带警告)并运行,但它不会设计。如果我将myClass移动到文件的底部,那么它可以正常工作。有谁知道为什么会这样?

此外,这意味着在我不知道的表单中有一组规则来编码布局。有没有人知道的这些地方的清单 - 或者我找到了唯一的一个?

2 个答案:

答案 0 :(得分:3)

我认为这是.NET 1.1设计器的工件。那时候还没有部分关键字,设计师有一个不值得羡慕的任务就是找回InitializeComponent()方法,即使是在编辑过程中的代码中也是如此。没有编译器的帮助。

为了避免错误地完全解释代码的风险,它有一些关于代码应该是什么样子的基本规则。并且要求表单类成为文件中的第一个类很有意义。如果该规则不存在,则必须能够解析可能具有非常基本语法错误的类,例如不平衡的大括号。在这种情况下简单地宣称“无法加载形式”不会让任何人高兴。

一旦部分关键字可用,此要求无法解除,它仍然必须支持早期版本中设计的表单。

这是我所知道的唯一代码布局规则。有其他可能的意外的很多,手工修补InitializeComponent()总是获得WSOD的好方法。

答案 1 :(得分:0)

显然那只是设计师。没什么值得担心的。

这与C#本身无关,但更多的是使用Visual Studio设计器在屏幕上查找和绘制表单。