windowsmobile嵌入式设计.docx

上传人:小飞机 文档编号:1665207 上传时间:2022-12-13 格式:DOCX 页数:154 大小:4.67MB
返回 下载 相关 举报
windowsmobile嵌入式设计.docx_第1页
第1页 / 共154页
windowsmobile嵌入式设计.docx_第2页
第2页 / 共154页
windowsmobile嵌入式设计.docx_第3页
第3页 / 共154页
windowsmobile嵌入式设计.docx_第4页
第4页 / 共154页
windowsmobile嵌入式设计.docx_第5页
第5页 / 共154页
点击查看更多>>
资源描述

《windowsmobile嵌入式设计.docx》由会员分享,可在线阅读,更多相关《windowsmobile嵌入式设计.docx(154页珍藏版)》请在三一办公上搜索。

1、MEDC 2006 移动开发 动手实验请不要将实验手册带走,谢谢合作。本文档所包含信息仅代表文档出版时微软公司的观点。但由于未来微软必然会对市场策略进行调整,本文档的有效性并不受微软保障,微软不保证在本文档出版之后信息的正确性。本白皮书提供相关信息仅供参考。微软对本文档之外的任何内容没有任何保证、表述、暗示或者约定。读者应该遵从各种相关版权法令的规定。未经微软公司的书面授权,不得对本文档中的任何部分进行复制存储操作,或引入可检索系统中;不得因任何目的,以任何形式和方式(电子、机械、图像、录音及其他)传播本文档。本文档相关内容可能包含了微软的专利、专利应用、商标、版权或者其他知识产权。除非经微软

2、书面形式的特别说明,提供本文档不包括使用这些专利、商标、版权或者其他任何知识产权的权利。除非特别注明,本文档中所描述的各种公司、机构、产品、域名、e-mail地址、标记、人物、地点和事件均属虚构,并非有意针对任何真实的公司、机构、产品、域名、email地址、标记、人物、地点或事件。版权所有 2006 Microsoft Corporation。保留所有权利。Microsoft、Windows、ActiveSync、Visual Studio以及Windows Mobile,都是微软公司在美国和/或其他国家的注册商标或商标。本文档中所提及实际的公司名称和产品名称可能是其他公司的商标。目录使用Vi

3、sual Studio 2005创建基于Windows Mobile设备的.NET Framework精简版应用程序4实验1: 使用Visual Studio 2005为基于Windows Mobile的设备建立一个.NET Compact Framework应用程序7练习 1: 创建Smartphone应用程序和使用SQL Mobile数据8练习 2: 添加向联系人发送电子邮件的功能27使用ASP.NET 2.0中的移动控件创建电子书库应用36实验1:使用 Visual Studio 2005中的ASP.NET 移动控件创建电子书浏览器应用程序39练习1: 创建一个ASP.NET 移动设备应

4、用程序39练习2: 使用ObjectList控件显示DataSet中的数据46练习3: 使用模板对指定设备进行定制52使用Visual Studio 2005和SQL server 2005开发基于SQL的移动应用58实验1: 使用Visual Studio 2005 和 SQL Server 2005 开发 SQL Mobile 应用程序61练习 1: 在 Windows Mobile 5.0 应用程序中创建并使用 SQL 服务器移动版本数据库61练习 2: 在 SQL Server 2005 和 SQL Server Mobile Edition 之间同步数据82练习 3: 使用 web

5、service 在任何后端数据库 SQL Server Mobile Edition 之间同步数据121使用.NET Framework精简版2.0开发多线程应用127实验1: 使用.NET Compact Framework 2.0开发多线程的应用程序130练习 1: 使用 .NET Compact Framework 2.0 创建多线程应用(推荐)131练习 2: 修改多线程应用程序136练习 3: 测试线程和线程池140练习 4: 在线程中更新用户界面(推荐)143练习 5: 使用同步对象同步线程147Patterns & Practices: Mobile Composite UI应用

6、程序积木介绍156实验1: Composite UI Application Block开发的介绍158练习1: Composite UI Application Block的概念与特性158练习2: 创建一个模块160附录 A. 结束运行在设备或者模拟器上的应用程序167HOL201使用Visual Studio 2005创建基于Windows Mobile设备的.NET Framework精简版应用程序概述本次动手实验中,您将学习如何使用微软的Visual Studio平台与.NET框架技术开发基于Windows Mobile设备的应用程序,您将使用VS2005 来对Windows Mob

7、ile程序进行基本的生成,发布,运行等操作。使用.NET Compact Framework与Windows Mobile软件开发包,自如的开发与进行移动手机数据的存储与管理,同时可以使用Microsoft SQL Server 2005 Mobile Edition (SQL Mobile)对数据进行保存与查阅。当完成全部实验后,您将对Windows Mobile平台开发工具与相关技术有全面的了解。技术等级:200预计完成时间1小时应用于 Microsoft .NET Compact Framework version 1.0 Microsoft SQL Server 2005 Mobile

8、 Edition (SQL Mobile) Microsoft Visual Studio 2005 Windows Mobile version 5.0 software for Pocket PCs Windows Mobile version 5.0 software for Smartphones Smartphones实验需求本动手实验需要以下软件: Microsoft Windows XP 专业版Internet Information Services (IIS) 动手实验使用Windows XP专业版中的IIS,请确认IIS已正确安装。Visual Studio 2005本实验

9、需要VS2005标准版,专业版或团队开发版。任何测试版本与演示版不能进行工作。如果没有合适的Visual Studio 2005,请访问 Microsoft ActiveSync 4.0 or later ActiveSync 4.0或更新的版本使您的电脑能够与Windows Mobilebased 设备连接Windows Mobile 5.0 SDKs.Windows Mobile 5.0 SDKs使得能在Visual Studio 2005平台上开发Pocket PC 与 Smartphone 软件 下载并安装Windows Mobile 5.0 SDK for Pocket PC :下载

10、并安装 Windows Mobile 5.0 SDK for Smartphone: 资源的使用在动手实验中使用到下面的WEB服务http:/your computers IP address/ProductData/UpdateService.asmx实验1: 使用Visual Studio 2005为基于Windows Mobile的设备建立一个.NET Compact Framework应用程序本实验中,您将学习如何使用已有的Visual Studio 和 .NET Framework技术开发基于Windows Mobile系统的设备的应用程序。本实验从建立一个简单的Smartphone

11、程序开始,接着对存储在SQL Server 2005 Mobile Edition (SQL Mobile)中的数据进行于访问,同时包括显示图片文件。然后利用Microsoft Pocket Outlook Object Model API (POOM),发送一条e-mail信息给Microsoft Office Outlook Mobile,增加一个更新数据到SQL Mobile database并下载附件中的图片文件功能的Web service创建一个Smartphone应用程序,让销售代表使用高清晰的图片与客户进行交流,这样,即使在旅途中,销售代表也可以轻松地连接到客户端获取他们想要的信

12、息,令他们的工作将更加有效。实例能够使销售代表快速浏览产品图片,及时的与客户进行电子邮件的交流并将信息存贮在Outlook Mobile Contacts list,同时可以轻松对数据进行更新与升级实验目的通过本实验,您将熟悉 用 Visual Studio 2005 和 SQL Mobile建立Windows Mobile 应用程序的过程,同时熟悉在新的 Windows Mobile 5.0里管理应用程序接口(APIs)的基本操作与使用在本动手实验中,您将体验:创建Smartphone 应用程序与使用SQL Mobile数据提供发送e-mail支持练习 1: 创建Smartphone应用程序

13、和使用SQL Mobile数据这个练习使用Visual Studio 2005创建Smartphone 应用程序。您将结合命令与移动设备的软键盘,添加一个浏览产品目录的功能,在已有的SQL Mobile 数据库里创建数据源,在Windows Mobile 5.0 模拟器里进行测试。按照下面的步骤,在Visual Studio中创建Windows Mobile 5.0 项目在Visual Studio中创建Windows Mobile 项目1. 首先启动Visual Studio 2005,点击 Start | All Programs | Microsoft Visual Studio 200

14、5点击Microsoft Visual Studio 2005的图标。2. 在Visual Studio 2005的菜单栏处点击File | New | Project 弹出New Project对话框。3. 在“New Project”对话框中“Project types”下展开“Visual C#”节点下的“Smart Device”节点选择“Windows Mobile5.0 Smartphone”。如图1所示图1:选择Windows Mobile 5.0 Smartphone device4. 在“New Project”对话框中的“Templates”下面选择“Device Appl

15、ication”。5. 在“Name”输入框中输入名称“OrderManager”。6. 点击“Browse”把路径定位到“C:Program FilesWindows Mobile Developer SamplesHOLsMED201_NETCF_APPS_VS2005Exercises”下点击Open。7. 点击“OK”。完成后如图2所示图2:OrderManager 项目根据据下列步骤,创建SQL Mobile数据库,在本练习的稍后您还会使用到这个数据源来添加浏览功能。添加一个新的数据源1. 在“Microsoft Visual Studio 2005”的菜单栏上点击“Data”、“A

16、dd New Data Source”之后将启动“Data Source Configuration Wizard”。2. 选择“Choose a Data Source type”下面的“Database”点击“Next”如图3所示:图3:在配置数据源向导中选择数据类型页3. 点击“New Connection”。4. 在“Add Connection”对话框中点击“Change”按钮。5. 对话框中选择“Microsoft SQL Server Mobile Edition”点击“OK”。注意 如果在第步中没有出现“Add Connection”对话框,而是出现Choose Data So

17、urce对话框,单击Continue,如图。图 4:选择数据源6. 在“Add Connection”对话框中选中“My Computer”如图5所示:图5:添加连接对话框7. 在“Add Connection”对话框的“Connection Properties”标题下点击“Browse”按钮。8. 将路径定位到“C:Program FilesWindows Mobile Developer SamplesHOLsMED201_NETCF_APPS_VS2005ExercisesOrders.sdf”如图6所示点击“Open”按钮。图6:浏览到Orders.sdf9. 在“Add Conne

18、ction”对话框中点击“OK”。注意 SQL Mobile数据库可以使用在台式电脑和Windows Mobile的设备上,这两种平台的区别在于一种是便携版本,Visual Studio 2005支持在两种平台上的连接和管理数据库。10. 在“Choose your data connection”页面点击“Next”如图7所示。图7:选择数据连接11. 在弹出的“Microsoft Visual Studio”对话框中点击“Yes”。12. 点击Yes 完成Visual Studio的数据库部分,在项目部署时数据库自动拷贝到设备上,此时出现Data Source Configuration

19、Wizard。13. 在“Data Source Configuration Wizard”页面展开“Tables”选择“Inventory”如图8所示。图8:选择数据库对象14. 点击 “Finish”。在“Solution Explorer”中将会看到“OrdersDataSet.xsd”和它所包含的文件如图9所示。图9:OrdersDataSet.xsd文件的结构按照下列步骤,创建一个新的表单,挨个浏览可用的产品,您将在表单上放置控件来显示数据字段。公司使用手机应用程序进行艺术品的销售,这个平台用来展示每个产品的图片。创建数据浏览窗体1. 在“Solution Explorer”中鼠标右

20、键点击“Form1.cs”选择“Delete”。2. 在弹出的确认提示框中选择“OK”。3. 在“OrderManager”项目标题上点击鼠标右键选择“Add”、“Windows Form”。4. 在“Add New Item”对话框中在“Name”栏中输入“ProductForm.cs”点击“”按钮如图10所示。图10:添加ProductForm.cs在设计视图中将看到智能手机的图像如图11所示:图11:加载ProductForm窗体的Smartphone5. 在“Solution Explorer”中双击“Program.cs”文件。6. 因为我们已经把“Form1”删除了所以需要更改一下

21、“Main”方法中的代码,把“Application.Run(new Form1();”修改为“Application.Run(new ProductForm();”。7. 修改完的“Main”方法应该像下面的代码这样:static void Main() Application.Run(new ProductForm();8. 保存并关闭“Program.cs”文件。9. 点击“Visual Studio”菜单栏上的“Data”选择“Show Data Sources”将会出现“Data Sources”面板。10. 在“Data Sources”面板中展开“OrdersDataSet”再展

22、开“Inventory”如图12所示。图12:数据源面板11. 点击“Inventory”将会出现下拉列表选取里面的“Details”如图13所示:图 13:目录详细信息12. 列出来的选项指示出用什么类型的数据绑定控件来建立表单,点击Details,每个数据列会被单独显示,并用标签和文本框分隔开来。图 14:单独的数据库列现在您可以指出当绑定到详细目录列表时会用何种控件,请准备往表单上拖放控件。13. 拖动“Inventory”到“ProductForm”窗体上。图15:包含四个表格列的窗体图16. 组件托盘ordersDataSet组件存储来自数据库表的数据,inventoryBindin

23、gSource组件管理表单控件和OrdersDataSet数据集之单的数据绑定,inventoryTableAdapter组件处理数据库与数据集OrdersDataSet之间的数据流动。正如您在设计视图的表单中所看见的,由于位置很小,所以要求每一个控件的摆放都经过慎重的考虑,常见的腾出位置的办法是去掉象Description之类的Label。14. 鼠标右键点击“Description”标签选择“Delete”。15. 鼠标右键点击“Description”文本框选择“Properties”把“location”中的值改为62,3把“size”的值改为96,22,如图17所示。注意 可以手动地

24、设置文本框的大小和位置,更精确的办法是在属性面板中设置其Location和 Size属性。图17:调整Description文本框的大小和位置16. 鼠标右键点击“Item Number”标签选择“Delete”。17. 鼠标右键点击“Item Number”输入框选择“Properties”把“location”的值改为3,3把“size”的值改为51,22如图18所示。图18:调整Item Number文本框的大小和位置18. 同上面的步骤一样把“Price”标签的“location”值改为8,28把“size”的值改为30,15。19. 同上面的步骤一样把“Price”文本框的“loca

25、tion”值改为62.26把“size”的值改为96,22。20. 按照上面相同的方法删除“Image Filename”标签和“imageFilenameTextBox”文本框。21. 点击“Visual Studio”菜单栏上的“View”选择“Toolbox”。22. 把“PictureBox”控件用鼠标拖拽到窗体上。23. 设置“PictureBox”控件的“location”的值为20,49“size”的值为122,122。24. 在“Properties”面板上把“PictureBox”控件的“Name”值改为“imagePictureBox”如图19所示:图19:改变名称属性最终

26、的效果如图20所示:图20:修订后的ProductForm窗体布局在下面的步骤中,您将为表单添加命令,这些命令包括滚动到下一项目和关闭应用程序为窗体添加菜单1. 在设计视图中鼠标点击菜单区域(窗体下的浅蓝色区域)如图21所示:图21:选择左软键的菜单注意 另一个设置菜单热键的方法是展开属性面板顶部的列表,选择mainMenu12. 点击左侧的区域在输入框中输入“Next”后按回车键。如图22所示。图22:标有Type Here文本的右软键3. 点击右侧的区域在输入框中输入“Menu”后按回车如图23所示:图23:菜单上的第一个命令4. 点击图23所示的“Type Here”处输入“Exit”后

27、按回车键如图24所示:图24:ProductForm窗体菜单命令5. 鼠标右键点击“Next”在弹出的菜单中点击“Properties”。6. 把“Name”的值改为“menuNext”。7. 点击“Menu”在弹出的菜单中鼠标右键点击“Exit”选择“Properties”。8. 在“Properties”面板把“Name”的值改为“menuExit”。添加数据浏览功能1. 在窗体的设计视图中双击“Next”标签,“Virual Studio”将会自动创建“Next”按钮的menuNext_Click方法如图25所示:图25:在ProductForm.cs代码中的 menuNext_Clic

28、k 方法2. 为了使“Inventory”标签中的数据滚动显示需要将inventoryBindingSource的Position属性增加1添加下列代码到menuNext_Click方法中inventoryBindingSource.Position += 1;3. 请确认“menuNext_Click”方法和下列代码一致。private void menuNext_Click(object sender, EventArgs e) inventoryBindingSource.Position += 1;4. 我们还要完善一下代码当数据到达最后一条要让数据自动回到第一条循环滚动。把步骤3中的

29、代码改为和下面的代码一致。inventoryBindingSource.Position = (inventoryBindingSource.Position + 1) % inventoryBindingSource.Count;5. 请确认“menuNext_Click”方法和下列代码一致。private void menuNext_Click(object sender, EventArgs e) inventoryBindingSource.Position = (inventoryBindingSource.Position + 1) % inventoryBindingSource

30、.Count;在滚动时详情列表依次显示数据,并自动更新下一项数据。下一个步骤是在PictureBox控件中显示适当的图片,装载和显示图片也是绑定过程的一部分,但是由于必须为每个图片建立一个单独的位图,这需要一些额外的步骤。6. 打开ProductForm.cs的设计视图。7. 在窗体下面的托盘中找到“inventoryBindingSource”如图26所示:图26:组件托盘8. 双击“inventoryBindingSource”,“Virusl Studio”将会自动创建inventoryBindingSource_CurrentChanged方法。此方法在每次数据记录改变的时候被调用。在

31、本应用中,该方法在ProductForm 第一次显示时和每次inventoryBindingSource Position 属性被修改时被调用。9. 在修改inventoryBindingSource_CurrentChanged 代码前, 定义一个类级别(在类定义内,但是在所有方法之外)的Bitmap类型的变量_imageBitmap。 在类的任何位置定义都可以,一个比较好的位置是inventoryBindingSource_CurrentChanged 方法后。Bitmap _imageBitmap;现在我们可以给inventoryBindingSource _CurrentChanged

32、 方法添加代码了。 inventoryBindingSource 涉及了一个 DataRowView 的引用,在Current 属性中存储了当前显示的数据行。10. 在inventoryBindingSource _CurrentChanged 方法的开头定义一个DataRowView 类型的变量rowView 。将 inventoryBindingSource 的Current 属性的值赋给该变量。 Current 属性是Object,所以您需要进行显式的类型转换。DataRowView rowView = (DataRowView) inventoryBindingSource.Curre

33、nt;11. rowView 的Row 保存了当前显示的 Inventory DataTable 中的数据行。声明一个 OrdersDataSet.InventoryRow 类型的变量 row 并将 rowView.Row的值赋给它。您需要显式的转换 rowView.Row 返回的数据类型。OrdersDataSet.InventoryRow row = (OrdersDataSet.InventoryRow) rowView.Row;如果您之前没有操作DataSet的经验,也许并不熟悉OrdersDataSet.InventoryRow 这样的对象。 这样的类型名称意味着 Inventory

34、Row 是一个嵌套类型,InventoryRow 类的定义是在OrdersDataSet 类的内部的。虽然嵌套类并不经常被使用,但是像DataSet这样的情况,嵌套类将很好的解决命名空间冲突问题。12. 需要显示的图片被保存在Inventory DataTable 的ImageFileName 列中,我们通过row ImageFilename 属性来访问。要显示图片,您必须先通过图片文件创建一个Bitmap 类。为了达到这个目的,需要创建一个新的Bitmap 实例并将文件名作为构造函数参数。将该Bitmap 赋给我们之前声明的 _imageBitmap 变量。_imageBitmap = ne

35、w Bitmap(row.ImageFilename);13. 现在 Bitmap 类已经创建好了。将 _imageBitmap 赋给 imagePictureBox.Image 来显示图片。imagePictureBox.Image = _imageBitmap;您现在已经完成了显示产品图片的必要步骤。最后要注意的一点是: Bitmap 类实现了IDisposable 接口,这表示我们在使用完Bitmap 类之后需要调用 Bitmap Dispose 方法释放相应资源,否则将造成资源漏洞。比较好的做法是在创建下一个实例之前调用该方法。14. 在 inventoryBindingSource

36、_CurrentChanged 方法的开头,添加 IF 语句判断 _imageBitmap 是否不为空。if (_imageBitmap != null)15. 在IF判断中调用 _imageBitmap Dispose 方法。_imageBitmap.Dispose();16. 完成后的 inventoryBindingSource _CurrentChanged 方法和 _imageBitmap 声明看起来应该像下面这样:void inventoryBindingSource_CurrentChanged(object sender, EventArgs e) if (_imageBitm

37、ap != null) _imageBitmap.Dispose(); DataRowView rowView = (DataRowView)inventoryBindingSource.Current; OrdersDataSet.InventoryRow row = (OrdersDataSet.InventoryRow) rowView.Row; _imageBitmap = new Bitmap(row.ImageFilename); imagePictureBox.Image = _imageBitmap;Bitmap _imageBitmap;现在您已经准备好了为ProductFo

38、rm菜单添加一个Exit事件,正如预期的,Exit用来关闭表单同时关闭应用程序。为“Exit”菜单添加实现功能的方法1. 打开窗体设计视图。2. 点击“Menu”菜单双击“Exit”按钮“Virual Studio”将为“Exit”按钮自动创建“menuExit_Click”事件方法。3. 在“menuExit_Click”方法中使用窗体的“Close”方法实现点击“Exit”按钮应用程序退出的效果,代码如下:Close();4. 请确认添加完“Close”方法的“menuExit_Click”方法和下面的事例代码一致。private void menuExit_Click(object se

39、nder, EventArgs e) Close();现在可以测试一下您的应用程序了。测试您的应用程序1. 在“Visual Studio”菜单栏上点击“Bulid”选择“Build Solution”。2. 点击“Debug”选择“Start Without Debugging”。3. 在弹出的“Deploy Order Manager”对话框中选择“Windows Mobile 5.0 Smartphone Emulator”如图27:图27:部署OrderManager 对话框.cab安装文件将部署在模拟设备上,这个过程会进行3分钟,应用程序准备完毕时显示在模拟器上,如图28:图28:正

40、在运行程序的模拟器注意:假如出现图29所显示的情况,点击NO。您需要退出这个版本的应用程序。图29:部署错误对话框4. 当表单启动,点击Next命令下面的软键向下滚动几项,注意如果您浏览到目录结尾,应用程序自动回滚到第一项 (一共有十二个照片)。5. 当感觉应用程序运行顺利,点击Menu指令之下的按钮, 然后使用模拟器的方向键和执行键(在方向键中间)来选择Exit命令。注意 您也可以使用每个命令文本边上显示的相关的数字键,使用一个模拟器时,您也能可以直接用鼠标按指令。练习 2: 添加向联系人发送电子邮件的功能在本练习中,您将会添加一个向选择的地址发送e-mail消息的功能,并包含图片文件的附件

41、。相对于在SQL Mobile数据库中保留不同版本的联系数据,应用程序有一个更好的方案使联系人列表可用,即存储在Smartphones Outlook Mobile Contact集中,您将使用到Contact Picke,它提供了更简便的方法来浏览Outlook Mobile.中的联系人,Contact Picke暴露ChooseContactDialog方法给.NET Compact Framework应用程序。在使用ChooseContactDialog类之前,必须添加Microsoft.WindowsMobile.Forms程序集到项目中,然后用using 导入相应的命名空间。添加引用

42、和导入命名空间1. 在“Solution Explorer”中,右键点击“Referrence”,在弹出的菜单中选择“Add Reference”。2. 在“Add Reference”对话框中按住“CTRL”键选择“Microsoft.WindowsMobile.Forms”和“Microsoft.WindowsMobile.PocketOutlook”如图30所示。注意 在Add Reference对话框中可以看到好几个含有Forms的程序集,注意是选择Microsoft.WindowsMobile.Forms程序集。图30:添加引用对话框3. 点击“OK”。新添加的引用会出现在“Solu

43、tion Explorer”中的“References”中如图31所示:图31:Solution Explorer中的项目引用4. 打开“ProductForm.cs”并显示代码。5. 定位到“ProductForm.cs”文件中已有的 using 子句上。6. 添加引用Microsoft.WindowsMobile.Forms”和 “Microsoft.WindowMobile.PocketOutlook”的using 子句using Microsoft.WindowsMobile.Forms;using Microsoft.WindowsMobile.PocketOutlook;显示Con

44、tact Picker并且发送邮件信息1. 打开“ProductForm.cs”窗体的设计视图。2. 点击“Menu”按钮在弹出的菜单中点击“Type Here”。3. 输入“Send”按回车键。如图32所示。图32:ProductForm菜单4. 鼠标右键点击“Send”按钮在弹出的菜单中选择“Properties”。5. 在“Properties”把“Name”的值改为“menuSend”。6. 双击“Send”按钮“Virual Studio”会自动为“Send”按钮创建“menuSend_Click”事件方法。7. 在“menuSend_Click”方法中创建新的 ChooseCont

45、actDialog实例,取名为 contactPicker。ChooseContactDialog contactPicker = new ChooseContactDialog();8. 使用“ShowDialog”方法显示对话框,检查“ShowDialog”方法的返回值来确定用户是否选择“继续”向“ShowDialog”方法中添加下面的代码。if (contactPicker.ShowDialog() = DialogResult.OK)9. 在if 条件中,声明一个DataRowView 类型的对象 rowView,将inventoryBindingSource.Current 属性的值

46、赋予它,记得转换返回值的类型,代码如后。DataRowView rowView = (DataRowView)inventoryBindingSource.Current;10. 声明一个变量OrdersDataSet.InventoryRow 类型的变量取名为selectedProduct,将rowView.Row属性的值赋予它,同样记得转换返回值的类型。OrdersDataSet.InventoryRow selectedProduct = (OrdersDataSet.InventoryRow)rowView.Row;11. 声明一个EmailMessage实例的类型,取名为message,代码如下:EmailMessage message = new EmailMessage();12. 将字符串文本“The picture you requested”赋值给EmailMessage类型的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号