C sharp .net Win编程实战.doc_第1页
C sharp .net Win编程实战.doc_第2页
C sharp .net Win编程实战.doc_第3页
C sharp .net Win编程实战.doc_第4页
C sharp .net Win编程实战.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#.net Winform编程实战用C#.net构建一个windows应用程序项目为了让大家对C#语言的方便快捷有一个感性的认识,下面我就把实际操作的过程详细的演示一下。启动 VS2005开发环境建立一个C# windows窗口应用程序在这里输入工程的名称以及存放的位置,解决方案的名称。点击确定后,系统会自动生成一个己有一个窗体的项目,此时,己经可以直接启动运行了。为了更新贴近实际应用,我们在这个项目中,做一个多文档容器的窗口,并加载常用的界面元素,把具体的功能做在另一个窗体中,做为其子窗体加载进来。通过属性栏,我们设置当前窗体为子窗体容器。并从工具箱拖放 菜单控件和状态栏控件进来。此时主窗体是这个样子,接下来,设置菜单项。还可以为菜单项加入对应的图标,以使其更加美观。在属性栏中,操作image属性项。可以根据需要选择将图片做为外部文件或是内部资源。在下方的状态栏控件上点击添加一个label,并在主窗体的 formLoad事件中添加代码下面我们在工程中再添加一个窗体,并命名为frm_Personnel在这里把窗体的名称改成您希望的名字,不要使用默认的名字。在窗体中放一个panel组件,并加分隔条,这样就可以方便地进行界面划分和拖动。我们把界面分成上下两部分点住后拖进窗体即可。设置panel的属性,dock设置为top再拖一个分隔条,也设为 Dock 到 Top为了让大家看清楚分隔条的位置,我们把他的背景色设为orange接下来,我们开始连接数据库。在本机上,随VS2005,安装了SQL Server 2005,为了更好的模拟实际工作环境,我们不使用微软件数据库,采用其它厂商的产品。如果需要连接DB2,需要安装DB2 Connect Provider For .net。下面以MySQL为例。我们切换到服务器资源管理器。右键点击,并新建数据连接。并可以测试一下连接是否成功。指定要连接的数据库正确输入数据库服务器的相关信息,点击确定后,就新增了一个数据库连接,并可以看到数据库中所有的表、视图等。这一步,只是建立了与数据库服务器的关联,接下来,需要新增一个针对本项目的数据源。切换到数据源视图,并添加。点击“添加数据源”,并在弹出的窗口中选数据库,并点击下一步。建立合适的连接,并将连接字符串保存。在此处指定数据集的名称,不要用系统默认的名称。选择本模块需要操作的表,系统会帮你自动生成数据集及相关的适配器。数据集己自动加入本项目。数据源中,出现本次所建的数据集。我们双击解决方案管理器中的 ds_Personnel.xsd,可以打开数据集编辑器进行查看和属性修改。数据集中的每个字段对应的属性,可以在属性栏中方便的修改,需要提醒大家的是,如果你在数据集生成后,变更了库结构,需要重新生成数据集或主动修改对应的属性。右键点击后弹出的菜单,可以点击配置,进入TableAdapter 配置向导。也可以点击添加查询,为数据集增加各种条件查询的手段。还可以通过这个按钮,选择是否生成配套的insert、delete、Update命令,以及是否使用开发式并发控制。可以手工输入所需的查询语句,也可以用查询生成器方便快捷地生成复杂的查询语句。这样,所生成的TableAdapter适配器类,就具备了增删查改的各种功能,可以在程序中直接调用了。我们回到数据源面板,在己生成的 ds_Personnel数据集中点击右键,VS2005支持数据与界面元素的自动绑定。可以选择按详细信息方式显示还是按DataGridView的形式表示。系统会自动生成 数据集、适配器、绑定源、数据导航条等控件实例。我们选中详细信息后,把personnel表拖放到窗体中,则直接出现了默认的显示控件。我们来看一下,系统帮我们做了什么:在本窗体类中,己生成了一个数据集实例,一个对应这个数据集的绑定源,数据适配器用来对数据集进行填充和更新的操作,一个数据导航器工具条控件,其按钮,就是直接调用适配器中的命令。并且在这个窗体的 formLoad事件处理函数中,已经自动加入了填充数据集的代码,以及点击保存按钮后更新到数据库的代码,非常简洁明了。系统自动添加的代码。接下来,我们再添加一个datagridview控件,做为索引表,构成常用的界面形式。选择当前窗体的 绑定源做为datagridview的datasource,并启用“在父窗口中停靠”。再拖一个 Picturebox控件进来,调整大小和位置,准备放用户的照片将 Picturebox控件的dataBindings属性中的 image属性绑定到当前绑定源的 photo照片字段。这样,这个窗口,就初步完成了。在主窗口中的“用户管理”菜单项下,加入代码,调用用户管理的窗体。双击菜单项,则进入该菜单项的事件处理函数。可以运行一下,看看效果。效果并不完美,还有许多地方需要调整。需要把提示信息,改为中文我们要把职称和部门字段改来由数据字典中选取,并要能更换照片。我们在属性栏中,把需要修改的提示信息改为中文,并把与职称和部门相关联的显示控件换成ComboBox控件。再编辑一下DatagridView 列。点这里。再跑一下,变成这个样子了。现在来解决一下数据字典的问题。在解决方案管理器中,添加新项,选“数据集”。在下面的过程中,我们演示一下手工建立数据集的方法。从工具箱拖一个TableAdapter进来,弹出对话框。选择本项目己有的连接串。在查询生成器中,添加需要的表,可以添加多个相关联的表,这里,我们只添加b_Title基础表即可。在需要的字段上打勾,下方就会自动产生对应的SQL 语句。这样,数据集就生成好了。当然,还可以为TableAdapter添加其它的查询,还可以传参数进去。生成关于部门的基础数据集ds_Department。我们采用一种更简便的方法。点击新增数据集,并指定名称后,显示空白的数据集编辑窗口。把DepartMent表拖进中间空的数据集中即可。数据集准备好后,我们回到窗体设计界面拖动DataSet到窗体。在弹出的设置对话框中指定相关信息。我们可以看到本项目己有的三个数据集的类,我们分别拖进来一个ds_Department 和 一个 ds_Title。接下来,在窗体的 load 事件处理函数中,添加填充数据集的语句。接下来,需要设置ComboBox的数据源以及DisplayMember 和 ValueMember三个属性。ComboBox_Title职称字段的dataSource属性,设置为ds_Title1,即本窗体的数据集实例。DisplayMember属性设置为数据集中b_title表的Title_Name字段。ValueMember属性设置为数据集中b_title表的id字段。ComboBox_Dep也是这样做相似的设置即可。然后,运行一下试试。表格中,也需要把代码换成汉字。为了把datagridview中的代码换成汉字,我们需要进行列编辑。将“职称”列的 ColunmType属性,由DataGridViewTextBoxColumn 改为 DataGridviewComboBoxColumn同样设置对应的的 DataSource属性DisplayMember属性 ValueMember属性。“部门”列也做相似的设置,指向对应的基础数据集。再运行一次看看效果。这里总是显示未知,在下方的表格中,却是正常的。如上图所示,在详细信息编辑区中,职称与部门初始显示总是“未知”,在下方表格中却是正常的。点击详细编辑区的下拉列表框,也能正常显示所有的选择项,这是为什么呢?原来,问题出在窗体初始化的顺序上。必须先初始化数据字典的基础数据集,再填充用户信息数据集,就可以了。接下来,需要添加更改照片的方法。我们在照片显示控件附件加一个按钮,“更换照片”。再从工具箱中,拖入一个openfileDialog 控件,用来打开指定的照片文件。双击“更换照片”按钮,在其点击事件处理函数中添加代码:当然,完善一点,还应该判断一下文件是否存在,能否正常打开等异常控制。这里为了简单起见,就不赘述了。为了更加完善一些,我们需要把ComboBox控件的DropDownStyle 属性设为 DropDownList这样,就只能选择,不能再编辑了。把“性别”字段也换成 ComboBox控件,不过这一次由于选择项是固定的,而且很少,所以直接写在控件中。数据绑定,也不再绑定 SelectValue 项,而改为绑定 SelectItem 项然后,我们再来把pictrueBox控件的SizeMode属性,改为StretchImage ,以使图片自动充满。最后,由于DataGridView控件只是做为一个索引表使用,并不实际在其中进行编辑操作,所以,我们可以使其只读。总结:通过这个小例子,我们大概可以掌握windows应用程序的写法了。1、 新建项目2、 建立一个windows应用程序。3、 设计界面4、 准备好数据连接。5、 按需要排布界面上的控件6、 在FormLoad事件中初始化所需操作的控件的状态,并填充需要的数据集。7、 将界面的控件与数据源中的对应字段绑定。8、 编写操控按钮的点击事件处理函数。调用数据访问层组件提供的功能,进行数据的读写和更新。9、 编写界面元素控制的代码,如某些时侯需要让某些控件隐藏或显示。10、 在保存操作前判断数据集是否变化,验收各字段的取值是否合乎逻辑,有无越界等。11、 在退出前,判断数据集是否变化,有必要时,做出提示。当然,在实际的软件项目中,会比这个例子复杂的多,加上团队合作的因素,因此需要对工程项目有一个更加完善的规划:1、 将各功能模块分别写在不同的项目中,每个项目形成一个DLL,每

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论