C#窗体文件与HTML文本文件的相似之处

C#窗体文件,例如Form1.cs,包含两个文件:Form1.Designer.cs和Form1.resx。如果在“解决方案浏览器”(Solution Explorer)中双击Form1.cs,则会打开该窗体的图形界面(GUI),双击Form1.Designer.cs,则会打开该窗体的结构代码(即partial class Form1),里面用代码定义了该图形界面中各个控件的属性和事件,这其实是Visual Studio对窗体的操作代码,最好不要来这里写代码,里面有窗体的系统规划代码;右击图形界面,点击"View Code",则会打开Form1.cs,这其实是用户对窗体的代码操作,里面通常有窗体事件,程序员也一般在这里编写代码。
    这样的结构安排与HTML文本文件(例如:test.html文件)有点相似:Form1.Designer.cs就相当于test.html文件中被包含在<html></html>之间的网页结构体,它定义了网页中各个元素的属性和事件;而test.html文件中的<javascript></javascript>之间的一段js代码则相当于Form1.cs,这段js代码一般是网页元素的事件代码以及事件所要调用的函数。
    现在举一个winform和web用户登录的例子加以说明:
    在winform中,窗体界面上有一个用户名和密码文本框和一个登陆按钮,界面如下:
 
 
 
 
 
 

.cs 类文件。源代码都写在这里,主要就看这里的代码。
.resx 资源文件,一些资源存放在这里,一般不需要看。
.csproj C#项目文件,用VS打开这个文件就可以直接打开这个项目,自动生成,不需要看。
.csproj.user 是一个配置文件,自动生成的,会记录项目生成路径、项目启动程序等信息。也不需要看。
.Designer.cs 设计文件,自动生成,不需要看。
.aspx 是网页文件,HTML代码写在这里面。

designer.cs 是窗体设计器生成的代码文件,作用是对窗体上的控件做初始化工作(在函数InitializeComponent()中)VS2003以前都把这部分代码放到窗体的cs文件中,由于这部分代码一般不用手工修改,在VS2005以后把它单独分离出来形成一个designer.cs文件与窗体对应。这样cs文件中剩下的代码都是与程序功能相关性较高的代码利于维护。

以下是摘自:http://hi.baidu.com/luyuanevil 写的关于*.designer.cs文件的一些认识

自从有了partial class 页面上控件的定义语句统统被移到了*.designer.cs文件中,所谓“眼不见心不烦”,微软干脆好人做到底,所有控件定义代码都自动生成。并且给出了警告:

//------------------------------------------------------------------------------
// <auto-generated>
//     此代码由工具生成。
//     运行库版本:2.0.50727.1433
//
//     对此文件的更改可能会导致不正确的行为,并且如果
//     重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------

现在问题来了,如果页面中有控件的命名不规范或者出现重名的情况,则*.designer.cs不会自动更新!有的时候系统也不会告诉你是哪个控件出了问题,尤其当这个控件处于formview的InsertTemplate或者UpdateTemplate 中!所以强烈建议控件的命名要规范,必要的时候可以附加上EditMode。例如对字段userID: 在InsertTemplate中的文本框为:UserIDInsertTextBox,而UpdateTemplate 中为UserIDUpdateTextBox。需要特别说明的是,当整个页面中的代码都符合规范时,运行“转换为Web程序”系统能重新生成相应的designer.cs文件!这一功能为我的FrameBuilder3.0的构建省了不少代码,呵呵。

只是我现在还不知道,究竟是哪个小工具能完成这个功能,隐约的觉得.NET应该自带了一个这样的小工具,也许是以动态链接库的形式或者*.exe的形式存在吧?类似与xsd.exe,希望知道的朋友不吝赐教~~

原文地址:https://www.cnblogs.com/pricks/p/1601728.html