《Visual Basic 2012入门经典》----2.6 管理项目

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

2.6 管理项目

Visual Basic 2012入门经典
要高效地创建界面和编写代码,必须理解Visual Basic 2012项目由什么组成以及如何在项目中添加和删除各种组件。在本节中,你将学习“Solution Explorer”窗口以及如何使用它来管理项目文件。你还将学习项目和项目文件的一些细节,包括如何修改项目的属性。

2.6.1 使用“Solution Explorer”管理项目文件

开发项目时,项目将变得越来越复杂,它们通常包含很多对象,如窗体和模块(代码组)。每个对象都用硬盘上的一个或多个文件来定义。此外,还可以构建由多个项目组成的复杂解决方案。图2.13所示的“Solution Explorer”窗口是管理或简单或复杂的解决方案包含的所有文件的工具。使用“Solution Explorer”,可以添加、重命名和删除项目文件,还可以选择对象以查看它们的属性。如果“Solution Explorer”窗口没有显示,选择菜单“View”>“Other Windows”>“Solution Explorer”显示它。


5d17dfdaadc70defd682540dde921b35b20453ac

为更好地理解“Solution Explorer”窗口,执行以下步骤。

1.从“File”菜单中选择“Open Project”,查找前一章创建的Picture Viewer程序。如果出现提示,不保存当前项目。

2.打开Picture Viewer项目。要选择的文件位于项目创建时Visual Basic创建的Picture Viewer文件夹中。文件的扩展名为.vbproj(表示Visual Basic解决方案)。如果提示是否要保存当前项目,选择“NO”。

3.选择“Solution Explorer”中的Picture Viewer。这时,靠近窗口顶部出现一个按钮,该按钮看起来像一张纸,且工具提示为“Show All Files”,如图2.14所示。单击该按钮,“Solution Explorer”将显示项目中的所有文件。


a4418cddd6bc32f270026b503e04e3533005af8f

注意:

有些窗体和其他对象可能由多个文件组成。默认情况下,Visual Basic隐藏用户不直接操纵的项目文件。如果单击ViewerForm.vb左边的加号,将看到名为ViewerForm的子项。它前面也有一个三角符号,可以单击它来显示更多的子项。第5章将介绍这些额外的文件;现在只需再次单击“显示所有文件”按钮将这些相关的文件隐藏即可。
双击“Solution Explorer”中列出的任何对象,可使用默认视图查看该对象。每个对象都有一个默认视图,但可能有多个视图。例如,窗体有窗体设计视图和代码视图。默认情况下,在“Solution Explorer”中双击窗体将显示窗体的设计视图,在该视图中可以操纵窗体的界面。现在,在“Solution Explorer”中双击ViewerForm.vb,在窗体设计器中显示窗体。

你已经知道一种访问窗体背后的代码的方法:双击对象访问其默认事件处理程序。你可能需要经常访问窗体的代码,而不增加新的事件处理程序。这样做的一种方法是使用“Solution Explorer”。在“Solution Explorer”中选择了一个窗体时,“Solution Explorer”窗口的顶部将出现另外两个按钮,分别用于显示代码编辑器和窗体设计器。

你经常需要使用“Solution Explorer”,因此可将它停靠在一边,并设置为自动隐藏或始终可见。“Solution Explorer”窗口是Visual Basic中最容易掌握的工具,用户必须能够得心应手地使用它。

2.6.2 使用解决方案

项目是使用Visual Basic创建的。通常,“项目”和“程序”可互换使用,如果你理解其中的重要区别,这并不是大问题。项目是构成程序或组件的源文件集合,而程序是将源文件编译成Windows可执行文件(.exe)等而创建的二进制文件。项目总是包含一个主项目文件,还可以包含任意数量的其他文件,如窗体文件或类模块文件。主项目文件存储关于项目的信息(如组成项目的所有文件)以及定义项目各个方面的属性(如将项目编译成程序时使用的参数)。

那么,什么是解决方案呢?随着你技能的提高和应用程序的复杂度增大,将必须构建多个项目,它们协同工作来实现目标。例如,可能需要构建一个自定义的用户控件,如设计其他项目时使用的自定义数据网格,也可能将复杂应用程序的业务逻辑分割成独立的组件,运行在不同的服务器上。用于实现这些目标的所有项目被统称为解决方案。因此,在最简单的情况下,解决方案只不过是一组项目。

提示:

仅当项目彼此相关时才将它们组合成解决方案。如果有多个项目,但每个项目都是独立的,应将每个项目作为独立的解决方案。
当您保存项目时,Visual Basic将为您创建解决方案文件。解决方案文件的扩展名为.sln,可以像打开项目文件那样打开解决方案文件。如果解决方案只包含一个项目,则打开解决方案文件和打开项目文件的效果相同。然而,如果需要同时处理多个项目,则应打开解决方案文件。

2.6.3 理解项目组件

前面提到,项目总是包含一个主项目文件,还可能包含一个或多个辅助文件,如构成窗体的文件或代码模块。在项目中创建和保存对象时,将在硬盘上创建和保存一个或多个相应的文件。为Visual Basic 2012源对象创建的每个文件都有.vb扩展名,表示它定义了一个Visual Basic对象。务必用容易理解的名称来保存对象,否则当项目规模增大时将导致混乱。

注意:

在以前的Visual Basic版本(6.0或更早的版本)中,可以根据扩展名确定项目文件定义的对象类型。例如,窗体文件的扩展名为.frm。遗憾的是,现在情况并非如此,因此用户必须小心地给文件指定唯一的名称。
组成项目的所有文件都是以文本文件的形式存储在硬盘上。有些对象需要存储二进制信息,如用于表示窗体BackGroundImage属性的图片。二进制数据存储在XML文件中(也是文本文件)。如果窗体包含图标,则有一个定义该窗体(其大小、包含的控件以及代码)的文本文件,还有一个关联的资源文件,其文件名与窗体文件相同,但扩展名为.resx。这个辅助文件的格式为XML,它包含创建窗体所需的所有二进制数据。

注意:

要查看窗体的源文件,可使用记事本来打开。但不要保存对文件所做的任何修改,否则它将不可用。
下面是在项目中可能用到的一些组件。

模块:模块用于存储不与特定窗口相关联的代码过程。
类模块:类模块是一种特殊模块,让用户能够创建面向对象的应用程序。在本书中,你将学习如何使用面向对象语言进行编程,但大部分时候是学习如何使用Visual Basic提供的对象。在第16章中,你将学习如何使用类模块来创建自己的对象。
窗体:窗体是构成应用程序界面的可视化窗口。窗体用一种特殊的类模块定义。
用户控件:用户控件(以前称为ActiveX控件,再以前是OLE控件)是用于其他项目的窗体上的控件。例如,用户为合同管理器创建一个包含日历界面的用户控件。创建用户控件要求有熟练的编程技能,因此本书不介绍它们。

2.6.4 设置项目属性

和控件等其他对象一样,Visual Basic项目也有属性。项目有很多属性,其中的一些与高级功能相关,本书不介绍它们。然而,你需要知道如何访问项目属性以及如何修改一些常用的属性。

要访问项目的属性,在“Solution Explorer”中右击项目名称Picture Viewer,并在弹出菜单中选择“Properties”;也可双击“Solution Explorer”中的项目名称。现在执行这两种操作之一。

项目的属性显示在一组竖直排列的选项卡中,如图2.15所示。


1987eb868aeb23c824a78a9e784c31e5f5676a31

在本书后面,必要时将在介绍其他内容时,介绍“Project Properties”对话框中的选项卡和选项。请查看Picture Viewer的属性,但现在不要做任何修改。要关闭“Project Properties”对话框,可单击IDE中选项卡区域右上角的小“×”按钮,也可单击其他选项卡。

2.6.5 添加和删除项目文件

启动Visual Basic 2012并创建新的Windows窗体应用程序项目时,Visual Basic只为项目创建一个窗体。然而,项目可包含更多窗体。可根据需要创建新窗体或将现有窗体添加到项目中(是不是感觉到了强大的功能?)。还可创建和添加代码模块、类及其他类型的对象。

在项目中添加新的或现有的对象有2种方法:

从“Project”菜单中选择对应的菜单项;
在“Solution Explorer”窗口中右击项目名称,然后从弹出菜单中选择“Add”,这时将出现一个子菜单,从中可以选择对象类型,如图2.16所示。


f4092747774a3465818776871bd1f02234db3be1

从这些菜单中选择要添加的对象类型后,将出现一个对话框,其中列出了可添加到项目中的对象;所选的项类型默认被选中,如图2.17所示。只要对对象进行命名,然后单击“Open”


5cf2aca86e9374c74c1f6252d82e86dd263c8f0a

按钮,就将创建一个所选类型的新对象。要创建其他类型的对象,单击该类型以选中它,然后对其进行命名,并单击“Open”按钮。

将新窗体和模块添加到项目中很容易,且添加的数量不限。当项目变得越来越复杂时,用户将越来越依赖于“解决方案资源管理器”来管理项目中的所有对象。

有时也需要将对象从项目中删除,虽然这并不像添加项目文件那样经常发生。从项目中删除对象比添加对象还要简单。要删除对象,在“Solution Explorer”中右击该对象,然后选择“Delete”。这不仅会将对象从项目中删除,也会将源文件从硬盘上删除。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

在码农的生活中,很多级码农都有这样的经历,会被一个小小的技术问题拦住,然后进度跟不上了,被老板XXXX一大通了。心情不爽了。 好吧,这个曾经是我遇到拦路虎之一。但事实上不是什么大技术。技术就是一层纸,破了就破了。 这是一个关于如何跨窗体操作控件或过程的一个例子。比如,你想用窗体A的按键来执行窗体B的文本框变色。 Imports System Imports System.Threading Imports System.Text Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load CheckForIllegalCrossThreadCalls = False '不写这行,会出错,不允许线程的数据写到TextBox1.Text 中去。 Form2.Show() End Sub Private Sub form1_FormClosing(sender As Object, e As EventArgs) Handles Me.FormClosing ' If runThread.IsAlive = True Then runThread.Abort() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '用的是委托方式 Me.Invoke(New MethodInvoker(AddressOf THREAD2)) End Sub Private Sub THREAD2() Static j As Integer j = j + 1 TextBox1.Text = " 这是 [线程] 操作" & vbCrLf & _ " Button2被点了: " & j & " 次" & vbCrLf & "要求是from2.textbox.text= textbox1.text 。[问题]但为什么不能成功显示呢?" End Sub Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged Form2.TextBox1.Text = TextBox1.Text End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Static j As Integer j = j + 1 TextBox1.Text = " 这是 [非线程] 操作" & vbCrLf & _ "Button3 点击了: " & j & " 次" & vbCrLf & _ "要求是from2.textbox.text= textbox1.text, 可以成功显示,这个是对的。" End Sub End Class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值