gui代码是事件驱动代码。两种gui应用:WInForms 和 WebForms.编程
事件驱动:用户我的行为都被封装在不少事件中,事件由操做系统来安排顺序执行。windows
事件处理:事件被handler处理 设计模式
通常来讲,这些处理器方法的代码是卸载可视化界面的后面。多线程
.NET 自动处理事件并生成一些基础的调用事件处理器的代码。ui
事件映射:经过委托。编码
事件处理器参数:操作系统
两个参数: Sender: 表示哪一个对象生成了事件线程
EventArgs: 例外的特定事件信息设计
通用验证方法:通用文本框验证方法。3d
通常事件处理器
容许把多个事件映射到同一个处理器
动态映射
处理器能够在运行时动态增长或移除映射(+=和-=)
事件处理器总结
你能够“多对一”进行事件处理:不一样的事件对应到相同的处理程序。
你也能够“一对多”进行事件处理:一个事件触发能够有多个动做。
WinForms
WinForms = .NET桌面GUI
使用 WinForms Application模板创建
实现
定义在system.windows.forms 名域
forms 从S.W.F.Form类继承行为
用法(很像VB6)
相同的体系:控件,属性,事件
相同的控件组:文本框,按钮,下拉框
强调简单实施:拖拉,放,编码
改进:
彻底面向对象并能够跨语言通用
有一些更强大的控件(DataGrid)
对于数据绑定有更好的支持
更好的resizing 支持(Anchor controls; AutoScroll form)
good-bye twips, hello pixels
启动Form
在VS中生成Main代码中自动实例化一个From的对象
Application.Run(new form1())
Best Practice
1.把Main 方法移出 From Class.
Main更容易找到(不要成为gui的一部分)
Main颇有可能还有其余的职责,这些职责与GUI没有关系。
通常使用App看成类名
2.通常启动时的通用异常处理
一般异常处理器
最简单的处理是日志而后终止程序
3.使用try-catch来捕获异常
WinForms 编程
WinForms 程序设计是一个很大的领域:
1.使用控件
2.创建自定义控件
3.多线程
4.MWC设计模式
.......
多Form应用程序例子
输入customer id(从一个窗体调用另外一个窗体)
创建,展示
验证输入
数据绑定
1.控件能够绑定数据源来得到数据
控件能够绑定整个集合collections
控件能够绑定单个对象属性
2.数据绑定在.NET中是普遍使用的
自动地reads & writes 绑定的数据
例子:
数据绑定在list上: