本文示例源代码或素材下载
我们身在何处?
前面写过的随笔主要关注的是F#与FP的基本概念,对UI涉及很少。我们知道,没有UI就没法与用户进行交互,所以写两篇随笔来了解一下这方面的内容。本文主要关注的是如何使用F#开发WinForm应用程序,后面还会介绍如何使用F#开发ASP.NET应用程序。
不过说真的,我对WinForm开发了解不多,所以如果有不妥之处,欢迎您的指正。
WinForm中的基础类型是System.Windows.Forms.Form类,通过它我们可以创建一个窗体,在窗体上我们可以根据需要进行绘制。绘制的时候我们可以选择使用.NET提供的API手工“画”出一些图形,比如像素着色、直线、圆等等,也可以使用.NET里面的一些标准控件,比如文本框、按钮等等。接下来基于Windows应用的事件驱动的特性,通过事件(Event)和事件处理函数(Event Handler)使用户可与程序进行交互。另外,如果标准控件或窗体不能满足需要,我们还可以对其进行扩展,创建用户控件和自定义控件。
下面就来看看如何实现这些过程。
分析
在使用C#开发的WinForm应用中可以看到,我们创建的新窗体类继承了System.Windows.Forms.Form类,在程序的入口函数Main中,有一行关键的代码:
C# Code
Application.Run(newMainForm());
也就是说创建Form类的一个实例,传给Application.Run方法,程序由此开始执行。使用C#开发的一大优势在于VS IDE提供的窗体设计器,这样就可以在设计时设置窗体和控件的属性,VS会为我们生成代码,从而大大提高了开发效率。
遗憾的是,VS还没有为F#提供这样的设计时支持,也就是说我们必须手工编写所有的代码,那如果界面很复杂,不得累死啊?也不尽然。首先考虑下面的简化了的三层架构示意图:
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!