首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >窗体的代码布局规则

问窗体的代码布局规则
EN

Stack Overflow用户
提问于 2010-05-26 14:57:28
回答 2查看 176关注 0票数 1

在移动一些代码以进行调查时,我遇到了.NET的一个我不知道的小特性,即窗体类必须是窗体模块中的第一个类,窗体设计器才能工作。以下情况会使设计器停止工作:

代码语言:javascript
复制
public class myClass
{
}

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

...
}

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-26 17:49:08

我认为这是.NET 1.1设计器的产物。当时还没有partial关键字,设计者有一项艰巨的任务要找回InitializeComponent()方法,即使在正在编辑的代码中也是如此。没有来自编译器的帮助。

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

一旦partial关键字可用,这个要求就不能取消,它仍然必须支持在早期版本中设计的表单。

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

票数 3
EN

Stack Overflow用户

发布于 2010-05-26 15:03:21

很明显,这只是设计师的问题。没什么好担心的。

这与C#本身无关,但更多的是使用Visual Studio designer在屏幕上查找和绘制窗体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2910700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档