《Visual Basic 2012入门经典》----1.7 编写界面后面的代码

简介: 为使程序能够执行操作和响应用户交互,必须为程序编写代码。Visual Basic是一款事件驱动的语言,这意味着代码将响应事件而执行。事件可能来自用户,如用户单击按钮触发其Click事件;也可能来自Windows本身(对事件的完整解释请参见第4章)。

本节书摘来自异步社区《Visual Basic 2012入门经典》一书中的第1章,第7节,作者: 【美】James Foxall,译者: 翟剑锋 , 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 编写界面后面的代码

Visual Basic 2012入门经典
为使程序能够执行操作和响应用户交互,必须为程序编写代码。Visual Basic是一款事件驱动的语言,这意味着代码将响应事件而执行。事件可能来自用户,如用户单击按钮触发其Click事件;也可能来自Windows本身(对事件的完整解释请参见第4章)。目前,该应用程序看起来不错,但并不能做任何事情。用户单击Select Picture按钮直到患上腕管综合症,也不会有什么事情发生,因为没有告诉程序当用户单击按钮时要做什么。现在按F5键来运行项目,便可以看到这一点。可以单击按钮,但它们不会做任何事情。完成后,关闭窗口返回设计模式。

下面编写代码来实现两项任务。首先,编写代码让用户浏览其硬盘来查找和选择图片文件,然后将文件显示在图片框中(这听起来比实际难得多)。其次,为Quit按钮添加代码,使得用户单击该按钮时关闭程序。

1.7.1 让用户浏览文件

要编写的第一段代码允许用户浏览其硬盘,选择一个图片文件,然后在PictureBox控件中查看选择的图片。这段代码在用户单击Select Picture按钮时执行,因此,它应添加到该按钮的Click事件中。

在设计视图中双击窗体中的控件时,该控件的默认事件将显示在代码窗口中。Button控件的默认事件是Click事件,这是因为单击是用户对按钮执行的最常见操作。现在,双击Select Picture按钮,在代码窗口中访问它的Click事件,如图1.12所示。


4a4fba8340af5f91b65760346dd8d07cd77d721e

您访问事件时,Visual Basic将创建一个事件处理程序,事件处理程序本质上是一个模板过程,可在其中加入事件发生时要执行的代码。鼠标已放在代码过程中,因此,您所要做的便是添加代码。阅读完本书时,读者可以任意添加自己的代码,使应用程序按照您的意愿执行——大部分时候是这样的。现在,只需输入下面列出的代码。

养成为代码添加注释的习惯很重要。因此,读者要输入的第一条语句是一条注释。以撇号打头的语句表示这是注释;编译器不会处理这样的语句,因此可在撇号后输入任意文本。输入如下文本,然后按回车键:

' Show the open file dialog box.
要输入的下一语句触发窗体中OpenFileDialog控件的一个方法。可将方法理解为一种使控件执行某项功能的机制。ShowDialog()方法命令控件显示其“Open File”对话框,让用户选择文件。ShowDialog()方法返回一个值,指明操作成功与否,然后可将这个值与预定义的结果(DialogResult.OK)进行比较。这时不必关心发生了什么;本书后面将介绍所有这些细节,本章旨在让读者在实践中学习。简单地说,ShowDialog()方法被调用,让用户浏览文件。如果用户选择了文件,将执行更多代码。当然,使用“Open File”对话框比这个简单的示例中能做的更多,但这条简单的语句足以完成任务。输入下面的语句,并在行尾按回车键(不用担心大小写,Visaul Basic将为您更改大小写):

If ofdSelectpicture.ShowDialog = DialogResult.OK Then
注意:

用户输入以If打头的语句并按回车键后,Visual Basic将自动创建End If语句。如果用户再输入End If语句,将出现两条End If语句,导致代码无法运行。在这种情况下,应删除一条End If语句。第13章将全面而详细地介绍If语句。
接下来是另一条注释。当前光标位于以If打头的语句和End If语句之间,输入下面这一条语句,并在行尾按回车键:

' Load the picture into the picture box.
提示:

无需按Tab键或使用空格来缩进代码,Visual Basic将自动缩进代码。
下面这条语句位于If结构中(If语句和End If语句之间),它是真正将图片显示在图片框中的代码。

输入下面的语句然后按回车:

picShowPicture.Image = Image.FromFile(ofdSelectPicture.Filename)
除显示选定的图片外,应用程序还在标题栏中显示图片的路径和文件名。创建窗体时,您使用“属性”窗口修改窗体的Text属性。要创建动态的应用程序,需要在运行时不断地调整属性,而这是使用代码实现的。插入下面两条语句(在每行行尾按回车键):

``' Show the name of the file in the form's caption.
Me.Text = "Picture Viewer(" & ofdselectpicture.FileName & ")"``
输入所有代码后,编辑器应如图1.13所示。


18a87816c424a8d07a8dc8d9a68c22bc6688ec09

1.7.2 使用代码终止程序

最后一小段代码是在用户单击Quit按钮时终止程序。为此,需要访问btnQuit按钮的Click事件处理程序。在代码窗口的顶部有两个选项卡。当前选项卡名为ViewerForm.vb。这个选项卡包含文件名为ViewerForm.vb的窗体的代码窗口;另一个选项卡名为ViewerForm.vb[Design],单击该选项卡将从代码视图切换到窗体设计器。如果单击该选项卡时发生错误,表明输入的代码有错误,需要将其编辑成与图1.13所示一致。窗体设计器出现后,双击Quit按钮来访问其Click事件。

在Quit按钮的Click事件处理程序中输入下列代码,在每行语句末尾按回车键:

``' Close the window and exit the application
Me.Close()``
注意:

Me.Close()语句关闭当前窗体。当程序中最后一个加载的窗体被关闭后,应用程序将完全终止自身的运行。创建更健壮的应用程序时,可能要在终止应用程序前执行各种清理工作,但在这个示例中,只需直接关闭窗体。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
8天前
|
机器人 API 调度
基于 DMS Dify+Notebook+Airflow 实现 Agent 的一站式开发
本文提出“DMS Dify + Notebook + Airflow”三位一体架构,解决 Dify 在代码执行与定时调度上的局限。通过 Notebook 扩展 Python 环境,Airflow实现任务调度,构建可扩展、可运维的企业级智能 Agent 系统,提升大模型应用的工程化能力。
|
人工智能 前端开发 API
前端接入通义千问(Qwen)API:5 分钟实现你的 AI 问答助手
本文介绍如何在5分钟内通过前端接入通义千问(Qwen)API,快速打造一个AI问答助手。涵盖API配置、界面设计、流式响应、历史管理、错误重试等核心功能,并提供安全与性能优化建议,助你轻松集成智能对话能力到前端应用中。
657 154
|
14天前
|
人工智能 数据可视化 Java
Spring AI Alibaba、Dify、LangGraph 与 LangChain 综合对比分析报告
本报告对比Spring AI Alibaba、Dify、LangGraph与LangChain四大AI开发框架,涵盖架构、性能、生态及适用场景。数据截至2025年10月,基于公开资料分析,实际发展可能随技术演进调整。
926 152
|
负载均衡 Java 微服务
OpenFeign:让微服务调用像本地方法一样简单
OpenFeign是Spring Cloud中声明式微服务调用组件,通过接口注解简化远程调用,支持负载均衡、服务发现、熔断降级、自定义拦截器与编解码,提升微服务间通信开发效率与系统稳定性。
352 156
|
6天前
|
分布式计算 监控 API
DMS Airflow:企业级数据工作流编排平台的专业实践
DMS Airflow 是基于 Apache Airflow 构建的企业级数据工作流编排平台,通过深度集成阿里云 DMS(Data Management Service)系统的各项能力,为数据团队提供了强大的工作流调度、监控和管理能力。本文将从 Airflow 的高级编排能力、DMS 集成的特殊能力,以及 DMS Airflow 的使用示例三个方面,全面介绍 DMS Airflow 的技术架构与实践应用。
|
7天前
|
人工智能 自然语言处理 前端开发
Qoder全栈开发实战指南:开启AI驱动的下一代编程范式
Qoder是阿里巴巴于2025年发布的AI编程平台,首创“智能代理式编程”,支持自然语言驱动的全栈开发。通过仓库级理解、多智能体协同与云端沙箱执行,实现从需求到上线的端到端自动化,大幅提升研发效率,重塑程序员角色,引领AI原生开发新范式。
427 2