频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

2.3.1 在Visual Studio中处理事件

作者: Erik Brown 徐波译 出处:机械工业出版社华章公司  2007-11-02 10:26    砖    好    评论   进入论坛
阅读提示:《Windows Forms 编程实战》第二章介绍Microsoft的交互性开发环境(IDE),这个环境就是Visual Studio,本文是在Visual Studio中处理事件。

2.3.1   在Visual Studio中处理事件

正如我们在前一章所看到的那样,事件是个预定义的活动(例如用户点击一个按钮或改变一个窗口的大小),程序可以对此作出响应。在第1章中,我们处理了当用户点击Load按钮时所发生的事件。在此,我们通过Visual Studio而不是文本编辑器来完成这个任务。

读者可能还记得,Load按钮的事件处理方法允许用户选择一个图像文件,并把这个文件中的Bitmap图像赋值给PictureBox控件。这个过程涉及到为这个按钮设置一个Click事件处理方法,并使用OpenFileDialog类来提示用户选择一幅需要加载的图像。

为了在MyPhotos应用程序中复制这个行为,这个事件处理方法的代码将与第1章已经显示和讨论的代码相同。因此,如果读者跳过了那段内容,请回到第1章,了解这方面的内容。

为了使下载的代码与本节的代码匹配,这个应用程序的版本号被设置为2.3。我们并不会在每一节中都提醒读者进行这样的修改,所以读者应该记住这一点。


在讨论这段代码之前,读者应该注意Visual Studio的语句自动完成特性。如果读者手工输入代码,很可能已经注意到Visual Studio会在输入代码时弹出类成员信息。图2-3显示了读者在输入btnLoad_Click方法的第1行代码后可能出现的结果。当读者输入“new”之后,Visual Studio会弹出一个可用类列表,并把OpenFileDialog类加亮显示,因为dlg变量属于这种类型。读者可以按Enter键自动接受加亮的类。

Visual Studio用不同的图标来表示不同的类型。在这张图中,大多数的项都是类,只不过Orientation是枚举类型。读者可以滚动这个列表,查看其他类型的图标。

这个特性也适用于变量和类,就像new关键字一样。当读者开始输入下一行代码设置对话框的Title属性时,可能会看到与图2-4相似的结果,它显示了dlg变量可以使用的类属性、方法和事件。它们对应于OpenFileDialog类的成员。
再次注意,Visual Studio用不同的图标来表示不同的项。在这张图中,ShowDialog是个方法,Title是个属性。读者可以滚动对话框,找到像Disposed或FileOk这样的事件,以查看它的图标。

读者将会注意到,在输入代码时会弹出另一个代码自动完成窗口。Visual Studio所提供的一个非常出色的特性是在输入代码时自动显示方法的签名,并且可以通过箭头键浏览方法的各个重载版本。我们将在第5章中看到,Visual Studio还会提取解决方案所定义的类和结构,把它们集成到这些弹出菜单中。在类中通过<summary>标签所提供的文档也会被包括进来,它提供了一种自动化的说明,向其他程序员提示一个特定成员的重要信息。

当然,和任何特性一样,这些弹出窗口都要消耗一定数量的CPU和系统资源。如果读者在一台较慢的机器上运行Visual Studio,或者读者并不希望出现这种窗口,可以通过图2-5所显示的“选项”对话框来关闭语句自动完成特性。选择“工具”>“选项”将会显示这个对话框。点击左边列表中的文本编辑器设置,选择C#项,然后选择“通用”。

图2-5   Visual Studio的“选项”对话框可以启用或禁用语句自动完成特性。智能感应特性提供了另一种语句自动完成设置

在这张图中,读者可以禁用成员自动列表或参数信息列表,或者把两者都禁用。如果读者有所疑问,可以点击问号(?)帮助按钮来了解有关这方面设置的其他细节。

回到我们的btnLoad_Click方法,这里所使用的代码与第1章的MyForm程序所使用的代码相匹配。另外,请观察位于隐藏的MainForm.Designer.cs文件中的InitializeComponent方法。Visual Studio为btnLoad控件添加了Click事件处理方法。

this.btnLoad.Click += new System.EventHandler(
this.btnLoad_Click);

编译并运行这个应用程序,验证这个程序现在可以加载并显示图像。如果读者回忆第1章的内容,可能会想起我们曾经说过这段代码假设被选择的文件可以转换为Bitmap对象。如果用户选择了一个实际上并非图像的文件,这个程序将以一种不友好的方式退出。现在是修正这个问题的好机会,我们将在下一节讲述这个话题。

【责任编辑:雪花 TEL:(010)68476606】

回书目   上一节   下一节
专题
体验Visual Studio 2008的魅力
Visual Studio 2005开发基础
2007年IT界七大抄袭事件
C#实用基础教程
新网百度黑客事件
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
浏览器的战国时代
浏览器的战国时代
ARP攻击防范与解决方案
ARP攻击防范与解决方案
NAC安全访问控制
NAC安全访问控制
· NAC安全访问控制
· 网络布线测试仪器
· Windows Server 2008专..
· Windows远程桌面应用
· 网络故障排除宝典
· 运营商封堵ADSL共享 中..
· 解析35岁技术人的价值..
· 世纪枭雄比尔盖茨的王..
· 主流品牌防火墙配置
· ASP.NET开发教程
· 超级计算机TOP500专题
· Vista SP1对决XP SP3
· SQL Server 2008/2005..
· 程序员如何成长?
· C#技术开发指南
· 虚拟化技术还有点“虚”
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用