《C#入门经典(第6版)》之如何编写简单的桌面应用程序

来源:互联网 发布:securecrt mac破解版 编辑:程序博客网 时间:2024/06/05 22:59

1本章内容:
● Visual Studio 2012 的基础知识
● 如何编写简单的控制台应用程序
● 如何编写简单的桌面应用程序       

      VS 是一个庞大的复杂产品,可能会使初学者望而生畏,但使 用它创建简单的应用程序是非常容易的。在本章开始使用VS 时,不需要了解许多知识,就可以编写C#代码。本书的后面将介绍VS 能够执行的更复杂操作,现在仅介绍基础知识。
介绍完IDE 后,将创建两个简单应用程序。现在不要过多地考虑代码,只要应用程序可以运行即可。在这些早期的示例中熟悉了应用程序的创建过程,不久之后就会适应这个过程了。本章将学习创建两种基本的应用程序类型:控制台应用程序和桌面应用程序。
      下面要创建的第一个应用程序是一个简单的控制台应用程序。控制台应用程序没有使用图形化的Windows 环境,所以不需要考虑按钮、菜单、用鼠标指针进行的交互等,而是在命令行窗口中运行应用程序,用更简单的方式与其交互。
      第二个应用程序是使用Windows Presentation Foundation(WPF)创建的一个桌面应用程序,其外观和操作方式对Windows 用户来说会非常熟悉,而且该应用程序创建起来并不费力。但所需代码的语法比较复杂,尽管在许多情况下,并不需要考虑细节。
本书接下来的两个部分也使用这两种应用程序类型,但开始时主要讨论控制台应用程序。在学习C#语言时,不需要了解桌面应用程序的其他灵活性能。控制台应用程序的简单性可以让我们集中精力学习语法,而不必考虑应用程序的外观和操作方式。
    1.1 Visual Studio 2012 开发环境
      在首次加载VS 时,会立即显示一系列窗口以及一组菜单和工具栏图标,其中大多数窗口是空的。本书将使用大多数窗口,读者很快就会熟悉它们。
      如果是首次运行VS,则屏幕上会显示一个首选项列表,如果用户使用过这个开发环境的旧版本,则可以在这里做出选择,这些选择会影响到很多方面,例如,窗口的布局、控制台窗口运行的方式等。所以应选择Visual C# Development Settings,否则会发现一些地方和本书的描述不一样。注意,可用选项会随着安装VS 时选择的选项而变化,但只要选择安装C#,这个选项就是可用的。
      如果不是第一次运行VS,但以前选择了另一个选项,也不必惊慌。为了把设置重置为Visual C#Development Settings,只需导入它们即可。为此,单击Tools 菜单上的Import and Export Settings 选项,再选中Reset All Settings 选项,如图1-1 所示
图1-1
      单击Next 按钮,选择是否要在继续之前保存已有的设置。如果对设置进行了定制,就保存设置,否则就选择No 按钮,再次单击Next 按钮。在下个对话框中,选择Visual C# Development Settings选项,如图1-2 所示。可用的选项可能会变化。最后单击Finish 按钮,应用设置。
      VS 环境布局是完全可定制的,但默认设置很适合我们。在C# Developer Settings 设置下,其布局如图1-3 所示。
      所有的代码都显示在主窗口中。在VS 启动时,主窗口会默认显示一个提供帮助信息的StartPage。主窗口可以包含许多文档,每个文档都有一个选项卡,单击文件名,就可以在文件之间切换。
      这个窗口也具有其他功能:它可以显示为项目设计的GUI、纯文本文件HTML 以及各种内置于VS的工具。本书将陆续介绍它们。
图1-2
图1-3
         在主窗口的上面,有工具栏和VS 菜单。这里有几个不同的工具栏,其功能包括:保存和加载文件,生成和运行项目,以及调试控件等。在需要使用这些工具栏时将会讨论它们。
下面简要描述VS 的最常用功能:
● 单击Toolbox 选项卡时,就会显示Toolbox 工具栏,它们提供了桌面应用程序的用户界面构件等条目。另一个选项卡Server Explorer 也可以在这里显示(通过View | Server Explorer 菜单项选择它),它包含其他许多功能,例如访问数据源、服务器设置和服务等。
● Solution Explorer 窗口显示当前加载的解决方案的信息。如上一章所述,解决方案是一个VS术语,表示一个或多个项目及其配置。Solution Explorer 窗口显示了解决方案中项目的各种视图,例如,项目中包含了哪些文件,这些文件中又包含了什么内容。
● Teamp Explorer 窗口显示了关于当前的Team Foundation Server 或Team Foundation Service连接的信息,可用于使用源代码管理、bug 跟踪、自动生成等功能。但是,这是一个高级主题,本书中不会介绍。
● Solution Explorer 窗口之下可以显示Properties 窗口,该窗口没有显示在图1-3 中。稍后会看到这个窗口,因为它只在处理项目时才出现(也可以使用View | Properties Window 菜单项切换它)。这个窗口提供了更详细的项目内容视图,允许另外配置单独元素。例如,使用这个窗口可以改变桌面应用程序中按钮的外观。
● 另一个非常重要的窗口也未出现在图1-3 中:Error List 窗口。可以使用View | Error List 菜单项打开这个窗口,它显示了错误、警告和其他与项目有关的信息。这个窗口会持续不断地更新,但其中一些信息只有在编译项目时才出现。
      这似乎需要理解很多东西,但不必担心,过不了多久就习惯了。下面首先建立第一个示例项目,它将使用上面介绍的许多VS 元素。
1.2 控制台应用程序
本书将频繁使用控制台应用程序,特别是开始时要使用这类应用程序,所以下面分步演示如何创建一个简单的控制台应用程序。
试一试:创建一个简单的控制台应用程序:ConsoleApplication1\Program.cs
(1) 选择File | New | Project菜单项,创建一个新的控制台应用程序项目,如图1-4 所示。
图1-4
(2) 在显示窗口的左侧选择VisualC# 节点,在中间窗格中选择ConsoleApplication 项目类型,如图1-5 所示。
图1-5
      把Location 文本框改为C:\BegVCSharp\Chapter02(如果该目录不存在,会自动创建) 。Name 文本框中的默认文本(ConsoleApplication1)和其他设置不变,
参见图1-5。
(3) 单击OK 按钮。
(4) 初始化项目后,在主窗口显示的文件中添加如下代码行:
namespace ConsoleApplication1{class Program{static void Main(string[] args){// Output text to the screen.Console.WriteLine("The first app in Beginning Visual C# 2012!");Console.ReadKey();}}}


(5) 选择Debug | Start Debugging 菜单项。稍后将看到如图1-6 所示的结果。
图1-6
(6) 按下任意键,退出应用程序(可能首先需要单击控制台窗口,以激活它)。
      只有像本章前面描述的那样应用了Visual C# Developer Settings,才会显示上述内容。例如,若应用了Visual Basic Developer Settings,就会显示一个空的控制台窗口,应用程序的输出结果显示在Immediate 窗口中。这种情况下,Console.ReadKey()代码也会失败,显示一个错误。如果遇到这个问题,本书中所有示例的最佳解决方案是应用Visual C# Developer Settings,这样读者看到的结果才会与书中显示的相同。如果问题未得到解决,可以打开Tools | Options 对话框,取消选中Debugging |
Redirect all Output Window text to the Immediate Window 选项,如图1-7 所示。
图1-7
示例的说明
       现在不仔细研究这个项目中使用的代码,而关心如何使用开发工具来启动和运行代码。显然,VS 自动完成了许多工作,简化了编译和执行代码的过程。执行这些简单的步骤还有多种方式。例如,创建一个新项目可以像前面那样使用菜单项,也可以按下Ctrl+Shift+N 组合键,还可以单击工
具栏上的相应图标。
      同样,也可以采用多种方式编译和执行代码。上面使用的方法是选择Debug | Start Debugging 菜单项,也可以按下快捷键(F5),或者使用工具栏中的图标。使用Debug | Start Without Debugging 菜单项(也可以按下Ctrl+F5 组合键)还可以以非调试模式运行代码,使用Build | Build Solution 或F6 可以编译项目但不运行它(打开或关闭调试功能)。注意,执行项目但不调试,或者使用工具栏中的图标生成项目,只是这些图标在默认情况下没有显示在工具栏中。编译好代码后,在Windows 资源管理器中运行生
成的.exe 文件,就可以执行代码。也可以在命令提示窗口中执行,为此,应打开一个命令提示窗口,把目录改为C:\BegVCSharp\Chapter02\ConsoleApplication1\ConsoleApplication1\bin\Debug\ , 键入ConsoleApplication1,并按下回车键。
        在以后的示例中,我们仅说明“创建一个新的控制台项目”或“执行代码”,用户可以选择自己喜欢的方式执行这些步骤。除非特别声明,否则所有的代码都应在启用调试的情况下运行。另外,本书中的“启动”、“执行”和“运行”等术语的含义是相同的,示例后面的讨论总是假定已经退出了示例中的应用程序。
        控制台应用程序会在执行完毕后立即终止,如果直接通过IDE 运行它们,就无法看到运行结果。为了解决上例中的这个问题,使用Console.ReadKey();告诉代码在结束前等待按键。后面的示例将多次使用这种技术。前面创建了一个项目,现在详细讨论开发环境中的各个组成部分。
1.2.1 Solution Explorer 窗口
      首先要讨论的窗口是屏幕右上角的Solution Explorer。与其他窗口一样,可以把它移到任何位置,或者单击其图钉图标将它设为自动隐藏。Solution Explorer 窗口与另一个有用的窗口Class View 位于相同的位置上,使用View | Class View 菜单项就可以显示Class View 窗口。图1-8 显示了展开所有节点的这两个窗口(在窗口停靠时,单击窗口底部的选项卡,就可以切换它们)。
图1-8
        Solution Explorer 窗口显示了组成ConsoleApplication1 项目的文件,包括我们在其中添加代码的文件Program.cs、另一个代码文件AssemblyInfo.cs 和多个引用。
此时不需要考虑AssemblyInfo.cs 文件,它包含项目中目前我们不必关心的其他信息。
        使用这个窗口可以改变主窗口中显示的代码,方法是双击.cs 文件,或右击这些文件并选择View Code,或选中它们,单击窗口顶部的工具栏按钮。还可以对这些文件执行其他操作,例如,重命名它们,或从项目中删除它们等。在该窗口中还可以显示其他类型的文件,例如,项目资源(资源是项目使用的文件,这些文件可能不是C#文件,如位图图像和声音文件等)。可以通过同一界面处理它们。
        展开代码项(例如Program.cs)可以查看其中包含的内容。这个代码结构概览是一个很有帮助的工具,可以用来直接定位到代码文件中的特定部分,而不必打开该代码文件并滚动到想要处理的部分。
        References 项包含项目中使用的一个.NET 库列表,这个列表在后面介绍,因为标准引用很适于初学者使用。Class View 窗口显示了项目的另一种视图,可以用于查看刚才创建的代码结构。本书后面将介绍代码结构,现在使用Solution Explorer 窗口就足够了。单击这些窗口中的文件或其他图标,Properties 窗口的内容就会发生相应变化,如图1-9 所示。
图1-9
1.2.2 Properties 窗口
        使用 View | Properties Window 菜单项就可以打开Properties 窗口。这个窗口显示了在其上面的窗口中所选的项的其他信息。例如,选择项目中的Program.cs 文件,就会显示如图1-9 所示的窗口。这个窗口还显示了其他选中项的信息,例如,用户界面组件(参见本章的1.3 节“桌面应用程序”)。
        通常在Properties 窗口中对项目的改变会直接影响代码,添加代码行,或改变文件中的内容。对于一些项目来说,通过这个窗口来操作与手动修改代码所用的时间是相同的。
1.2.3 Error List 窗口
        当前 Error List 窗口(View | Error List)没有显示什么有趣的信息,这是因为应用程序没有错误。但这的确是一个非常有用的窗口。下面进行测试,从上一节添加的代码中删除某一行的分号。稍后会看到如图1-10 所示的结果。
图1-10
        这个窗口有助于根除代码中的错误,因为它会跟踪我们的工作,编译项目。如果双击该窗口中显示的错误,光标就会跳到源代码中出现错误的地方(如果包含错误的源文件没有打开,将被打开),这样就可以快速更正错误。代码中有错误的一行会出现红色的波浪线,以便我们快速浏览源代码,找出错误。
        注意错误位置用一个行号来指定。默认情况下,行号不会显示在VS 文本编辑器中,但其实有必要显示它。为此,需要单击Tools | Options 菜单项,选中Options 对话框中的Line numbers 复选框。
        该复选框位于Text Editor | All Languages | General 类别中,如图1-11 所示。也可以在这个对话框中与各个语言对应的设置页面中针对具体语言单独修改此设置。这个对话
框中还包含其他许多有用的选项,本书将使用其中几个。
图1-11
1.3 桌面应用程序
        通常,在演示代码时,将其当作桌面Windows 应用程序的一部分来运行,要比通过控制台窗口或命令提示符来运行更便于说明。下面用用户界面构件来组合一个用户界面。
        下面的示例介绍建立用户界面的基础知识,说明如何启动和运行桌面应用程序,但并不详细讨论应用程序实际完成的工作。Microsoft 推荐使用WPF 技术创建桌面应用程序,所以本例中使用了WPF。本书后面会详细研究桌面应用程序,以及WPF 到底是什么,到底可以做些什么。
试一试:创建一个简单的桌面应用程序:WpfApplication1\MainWindow.xaml和 WpfApplication1\MainWindow.xaml.cs
(1) 在与之前相同的位置(C:\BegVCSharp\Chapter02)创建一个类型为WPF Application 的新项目,其默认名称是WpfApplication1。如果第一个项目仍处于打开状态,就应选择Create New Solution选项来启动一个新解决方案,这些设置如图1-12 所示。
(2) 单击OK 按钮,创建项目后,应该会看到一个新的分成两个窗格的选项卡。上面的窗格显示了一个空窗口,称为MainWindow,下面的窗格显示了一些文本。这些文本实际上就是用来生成窗口的代码,在修改UI 时,会看到这些文本也发生了变化。
(3) 单击屏幕左上方的Toolbox 选项卡,然后双击Common WPF Controls 区域中的Button,在窗口中添加一个按钮。
(4) 双击刚才添加到窗体中的按钮。
(5) 现在应显示MainWindow.xaml.cs 中的C#代码。执行如下修改(为简短起见,这里只显示了文件中的部分代码):
private void Button_Click_1(object sender, EventArgs e){MessageBox.Show("The first desktop app in the book!");}


图1-12
(6) 运行应用程序。
(7) 单击显示出来的按钮,打开一个消息对话框,如图1-13 所示。
1-13
(8) 单击OK。像每个标准桌面应用程序那样,单击右上角的X 图标,退出应用程序。
示例的说明
        IDE 又一次自动完成了许多工作,使我们不费吹灰之力就能完成一个实用的桌面应用程序的创建。刚才创建的应用程序与其他窗口的行为方式相同 —— 可以移动、重新设置其大小、最小化等。
        我们不必编写任何代码来实现这种功能。我们添加的按钮也是这样。双击按钮,IDE 就知道我们想添加一些代码,当运行应用程序时,用户单击该按钮,就执行我们已经编写好的代码。只要提供了这段代码,就可以得到按钮单击的所有功能。
        当然,桌面应用程序不仅限于带有按钮的普通窗口。如果看看从中选择Button 选项的工具箱,就会看到一整套用户界面构件(称为控件),其中一些用户可能很熟悉。本书在其他地方将使用其中的大多数用户界面构件,它们使用起来都非常简单,可以节省许多时间和精力。
        应用程序的代码在MainWindow.xaml.cs 中,看起来并不比上一节提供的代码复杂多少,SolutionExplorer 窗口中其他文件的代码也不太复杂。MainWindow.xaml 中的代码(可在添加按钮的拆分窗格视图中看到)看上去也很简单。在窗口的图形化表示下,可以看到下面的代码:
<Window x:Class="WpfApplication1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow" Height="350" Width="525"><Grid><Button Content="Button" HorizontalAlignment="Left"VerticalAlignment="Top" Width="75" Click="Button_Click_1" /></Grid></Window>


        这是一段XAML 代码。XAML 是在WPF 应用程序中定义用户界面的语言。
        下面仔细分析一下在窗口中添加的按钮。在MainWindow.xaml 的顶部窗格中,单击按钮一次选中它。此时屏幕右下角的Properties 窗口显示了按钮控件的属性(控件也有属性,就像上一个示例中的文件一样)。确保应用程序当前没有运行,然后向下滚动到Content 属性,该属性现在被设为Button。
        将它设为Click Me,如图1-14 所示。
        设计器中按钮上的文本以及XAML 代码也会反映这种变化,如图1-15 所示。
 
图1-14
图1-15
        这个按钮具有许多属性,从按钮颜色和大小的简单格式,到某些模糊设置(如数据绑定设置,它可以建立与数据的联系),应有尽有。如上例所述,改变属性通常会直接改变代码,这也不例外,从图 1-14XAML 代码的改变中可以看到这一点。但如果切换回MainWindow.xaml.cs 的代码视图,是看不到代码发生变化的。这是因为WPF 应用程序能够保持应用程序的设计(如按钮上的文本)与功能(例如单击按钮后发生的操作)的分离。
1.4 小结
      本章介绍了本书后面所使用的一些工具,快速浏览了Visual Studio 2012 开发环境,并使用它建立了两种类型的应用程序。其中较简单的是控制台应用程序,它足以满足我们的大多数需要,便于我们集中精力学习C#编程的基础知识。桌面应用程序比较复杂,但其可视化程度比较高,对于习惯了Windows 环境的人而言,使用起来也比较直观。
知道如何创建简单的应用程序,就可以真正开始学习C#了。本书后面的章节将介绍C#的基本语法和程序结构,之后讨论更高级的面向对象方法。学习了这些内容后,就可以开始了解如何使用C#访问.NET Framework 的功能了。
1.5 本章要点

《C#入门经典(第6版)》试读电子书免费提供,有需要的留下邮箱,一有空即发送给大家。 别忘啦顶哦!
19 0