您的位置:首页 > 其它

F#探险之旅(八):使用F#开发Windows应用程序

2008-12-17 22:11 239 查看
我们身在何处?

前面写过的随笔主要关注的是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中,有一行关键的代码:

F# Code
Application.EnableVisualStyles()

这样就可以使用XP/Vista的可视化样式了。程序的运行效果为:



仅使用F#开发UI之外的代码

得益于F#与其它.NET语言良好的互操作性,我们可以在C#中开发UI部分,然后调用F#类库,这个过程跟调用C#开发的类库相比没有很大的区别,在此就不赘述了。

其它

关于WinForm开发的主题还有创建用户控件、自定义控件等,这方面已经有大量的资料了,相信使用本文的方法,开发起来也不会很难:)

小结

本文主要讨论了如何使用F#开发Windows应用程序。通过分析,确定了三种主要的方法,重点讨论了如何在F#中利用VS中的窗体设计器,这会使WinForm程序的开发简单不少。其中的一个例子是processFinder,它可以获取当前机器上的进程和应用程序信息。

下载示例代码
(要了解本人所写的其它F#随笔请查看 F#系列随笔索引

参考
《Foundations of F#》 by Robert Pickering
《Expert F#》 by Don Syme , Adam Granicz , Antonio Cisternino
Finding and Listing Processes in C#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: