当前位置: 首页 > 工具软件 > Web Forms > 使用案例 >

Web Form

乔丁雨
2023-12-01

Win   Forms   是专用于   Windows   客户机   UI   编程的   .NET   Framework   的命名空间。它与   ASP+   UI   程序包(即   Web   Forms)共享同样的设计原则,但其类和实现却全然不同。在   Microsoft   Win32®   API   和   Web   组件之间没有魔术般变形的类。就像所有的   .NET   Frameworks   一样,一致性已成为优先考虑的问题。其目的是为了   Win   Forms   开发人员能够迅速适应在   Web   Forms   中编写代码,反之亦然。例如,所有命名空间都有   Button   类,每一个都有文本、默认的   OnClick   事件以及   ForeColor、BackColor   和   Font   属性。  
   
  Win   Forms   的所有控件都基于   System.WinForms.Control   类。Control   已内置了所有基本的   HWND   功能,并且它能处理我们已经熟悉并喜爱的绝大多数通用   WM_xxxx   消息。RichControl   由   Control   派生而来,其中添加了布局逻辑和绘图代码。System.WinForms   命名空间中的绝大多数控件实际上都由   RichControl   派生而来。ScrollableControl   能够支持窗口客户区域的滚动。一般情况下,对滚动功能的支持是通过   ContainerControl   实现的,后者由   ScrollableControl   派生而来,并增加了对管理子控件、焦点问题和跨栏的支持。Form   由   ContainerControl   派生而来,是   Win   Form   的顶级控件,它带有控制标题栏、系统菜单、非矩形窗口和默认控件的属性。UserControl   也由   ContainterControl   派生而来,是开发人员能够创建的控件的基本类。UserControl   一般用于托管其它子控件,但对于外部客户机来说,它又是作为单个单元出现的。UserControl   和   Form   在   Microsoft®   Visual   Studio.NET   中都有可视设计器,您会找到用于添加和设计由其所派生的类的项。  
   
   
  更好的易学易用性    
   
  Win   Forms   的主要目的是尽可能地提高定位到   Win32   平台的开发人员的工作效率。无论是图形设备界面   (GDI)   还是窗口状态管理,为   Win32   编程通常都是很困难的。例如,类似   WS_BORDER   或   WS_CAPTION   的一些窗口样式只能在创建窗口时指定或修改。而   WS_VISIBLE   或   WS_CHILD   等其它窗口样式则可以对已创建的窗口进行修改。Win   Forms   尽力消除了这些细微的差别,并确保操作过程始终保持一致性。可以随时地、不限次序地对   Win   Forms   控件的属性进行设置,总能产生预期效果。如果改动过程需要创建新的   HWND,Win   Forms   框架能够自动地、透明地重新生成窗口,并为其应用相适宜的所有设置。  
   
  由控件获得通知或事件在   Win   Forms   中也要容易得多。Win   Forms   事件都基于称为   Delegates   的一个通用语言运行时功能。Delegates   从本质上讲是对类型安全的、可靠的函数指针。对于任一控件的任一事件,都可以添加代理处理程序;绝不会强迫您创建派生类以通过替代处理事件,创建事件映射,或仅为处理一个事件而为类的所有事件实施一个接口。也可以通过替代派生类处理事件,但这种方式一般用于控件创建者或更为高级的应用。汇集某一按钮的   Click   事件相当简单:  
   
  public   class   ButtonClickForm:   System.WinForms.Form   {  
  private   System.WinForms.Button   button1;  
  public   ButtonClickForm()   {  
  //   创建按钮  
  button1   =   new   System.WinForms.Button();              
  //   添加处理程序  
  button1.AddOnClick(new   System.EventHandler(button1_Click));  
  //   将按钮添加到窗体中  
  this.Controls.Add(button1);  
      }  
   
  private   void   button1_Click(object   sender,   EventArgs   e)   {  
  MessageBox.Show("button1   clicked!");  
      }  
          }  
   
  这里,我们创建了一个按钮,并添加了一个名为   button1_Click   的处理程序方法,通过短短几行代码,在单击该按钮后,将调用这一方法。请注意,即使处理程序方法被标记为专用,创建这一挂钩的代码仍可以使用该方法,单击按钮后,按钮将能够激活这一方法的事件。  
   
  启动   Win   Forms   项目的过程也得到了简化。使用   Visual   Studio.NET   创建   Win   Forms   项目的过程只会创建一个要编译的项目文件:Form1.cs。没有头文件,没有接口定义文件,没有引导程序文件,没有资源文件,没有库文件。项目所需的所有信息都包含在窗体的代码中。这样做有一个好处:项目由一个简单的单窗体应用程序扩展到复杂的、带有多个代码文件的多窗体应用程序要方便得多。链接过程不需要中间对象文件,只有代码和已构建的、受管理的所有   DLL。只要您习惯了这一方法,就能明显地感觉到创建   .NET   Framework   应用程序和创建   C/C++   应用程序之间复杂性的不同。因为信息仅仅包含在代码文件中,在   Visual   Studio.NET   环境外创建版本的过程也非常容易,无论是   Visual   Basic   代码、C#   代码,还是任何其它语言编写的针对   .NET   Framework   的代码。  
   
  因为   Win   Forms   建立在通用语言运行时的基础之上,开发人员可以任选目前针对通用语言运行时的众多语言中的一种,构建   Win32   应用程序。开发人员现在可以使用多种语言编写   Win   Forms   应用程序(或   Web   Forms   应用程序或   Data   应用程序):从   C#   到   COBOL   到   Eiffel   再到   Perl   等等,中间还有很多种(上一次计数是   17   种)。方便易用再加上广泛的应用场合相得益彰,为开发人员提供了深厚的基础,使他们能够迅速有效地使用   Win   Forms   构建实用的应用程序。

 类似资料: