第七章控件和组件的使用.doc_第1页
第七章控件和组件的使用.doc_第2页
第七章控件和组件的使用.doc_第3页
第七章控件和组件的使用.doc_第4页
第七章控件和组件的使用.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

第七章 控件和组件的使用学习目标:v 掌握TreeView。v 掌握ListView。v 理解Process。v 理解Timer。v 了解EventLog。7.1 TreeView控件:使用Windows窗体TreeView控件,可以为用户显示节点层次结构。树视图中的各个节点可能包含其他节点,称为“子节点”。通过将树视图的CheckBoxes属性设置为True,可以显示在节点旁边带有复选框的树视图。通过将节点的Checked属性设置为True或False,可以采用编程方式来选中或清除节点。TreeView控件的主要属性包括:Nodes和SelectedNode。Nodes属性包含树视图中的顶级节点列表,SelectedNode属性设置当前选中的节点。TreeView控件使用ImageList属性中命名的ImageList中的图像,ImageIndex属性可以设置树视图中节点的默认图像。在节点旁边显示图标。要使得节点前面显示图标,需要在窗体中加入一个ImageList控件,并设置TreeView的ImageList属性为该控件。7.1.1 控件本身的同图标相关的属性:StateImageList:表示自定义的状态图标,这个ImageList组件中的图标可用于设置每个节点的状态图标。ImageIndex:指出当你没有指出节点使用哪一个图标时,默认要使用的图标。ImageKey:同ImageIndex功能一样,不同的是使用图标的键值指出,ImageIndex是通过索引号指出。SelectImageIndex:指出当一个节点被选中后它的显示图标。SelectImageKey:同SelectImageKey功能相同,不同点与ImageKey和ImageIndex的不同一样。7.1.2 节点的图标属性:每个节点都有ImageIndex,ImageKey,和SelectImageIndex,SelectImageKey属性,每个节点还有下面的图标相关的属性:StateIamgeIndex:使用索引号自定义的状态图标,图标位于控件中的StateImagelList定义的图标。StateImageKey:含义同StateImageIndex相同,不同的是使用键值指出状态图标,而不是索引号。TreeView提供了使用代码动态加载节点的功能。7.1.3 使用代码添加节点:在TreeView中,每个节点都是TreeNode类型的对象,每个节点都包含有用于容纳子节点的Nodes属性。通过使用TreeView类型和Nodes属性,TreeView能够动态地添加删除节点。(1) 使用TreeView的Nodes属性的Add方法添加节点。/定义一个新的节点TreeNode newNode=new TreeNode(“New Node”);/将上面的节点加入选中的节点作为子节点treeView1.SelectedNode.Nodes.Add(newNode);(2) 使用TreeView的Nodes属性的Remove方法移出单个节点,使用Clear方法清除所有节点。treeView1.Nodes.Remove(treeView1,SelectedNode); /删除选中的节点treeView1.Nodes.Clear(); /删除所有的节点(3) 当使用Add添加一个节点到TreeView的节点集合时,TreeView控件将重新绘制自身,(4) 当有大量的节点通过Add方法添加时,有可能会因为控件的重绘而引起闪烁。在TreeView的节点集合添加节点前调用BeginUpdate()方法,该方法用于阻止TreeView在每次添加项时重绘自身。最后,当结束向TreeView添加项时,调用控件的EndUpdate()方法通知TreeView重绘。treeView1.BeginUpdate();foreach(string NodeText in AppNodes)treeView1.Nodes.Add(NodeText);treeView1.EndUpdate();(5) 当需要添加大量节点时,可以使用AddRange,AddRange方法将一个数组的节点一次性添加到TreeView,因此,只重绘一次。 7.1.4 获取节点信息:TreeView的节点是按照树形结构填充的。TreeView有很多事件,最常用的是节点选取后事件AfterSelect,当用户用鼠标点击一个节点后,该事件将被触发。AfterSelect事件的参数是一个TreeViewEventArgs类型的对象,该对象中包括了被选中的节点信息。也可以使用BeforeSelect事件在节点被选中前完成需要的处理。7.2 ListView控件的使用:ListView控件允许显示项列表,这些项文本和图标(可选)来标识项的类型。7.2.1 显示模式:ListView控件具有五种视图模式,分别是“LargeIcon”,“SmallIcon”,“List”,“Details”和“Title”。View属性指出了ListView将使用的显示模式,其值是一个枚举型View。动态改变显示模式listView1.View=View.LargeIcon; ListView的显示模式显示模式解释LargeIcon在各项文本旁显示大图标,如果控件足够大,则项显示在多列中SmallIcon除显示小图标外,其他方面与大图标视图模式相同List模式显示小图标,但总是显示在单列中DetailsDetails模式在多列中显示项,它允许您在网格中显示项及子项,并通过列标头标识标题Title以平铺的方式显示7.2.2 ListView中项的添加和删除:ListView中的所有显示项使用Items属性表示,每一个项是一个ListViewItem类型的类,列表中显示的项可以用五种不同的视图之一显示。其中,Add用于添加一个项,AddRange用于添加一个数组项。使用代码移除项是通过调用项集合的Remove或者RemoveAt方法来完成,其中Remove要求一个ListViewItem类型的参数,RemoveAt要求的参数是项的索引号码。/向ListView中添加项ListViewItem lvi=new ListViewItem(“Item1”);listView1.Items.Add(lvi); /或者使用AddRange添加/从ListView中移除项For(int i=0;ilistView1.SelectedItems,Count;i+)/也可以使用ListView1.Items.RemoveAt(listView1.SelectedItemsi.Index);listView1.Items.Remove(listView1.SelectedItemsi);/添加或移除大量伪代码listView1.BeginUpdate();for() listView.Items.Add(); /或者Remove|RemoveAtlistView1.EndUpdate();7.2.3 子项:ListView中的每个项同时也可以具有子项,子项是包含与父项相关的信息,同项一样,子项也是一个ListViewItem类型对象,子项被包括在项中的SubItems属性中,使用Add/AddRange方法向项中添加子项,使用Remove/RemoveAt移除子项。7.2.4 ListView的列头:当ListView的显示模式是Details或者Title模式时,ListView允许像电子表格一样定义定义每个项和它的子项目的列头,对于其他模式列头是不可见的。7.2.5 分组显示ListView的项:当ListView的显示模式是除List模式之外时,ListView控件允许它包含的项进行分组,并分组显示这些项。分组的信息被保存在ListView的Groups属性中,Groups属性是ListView类型的对象集合。有两种方式对ListView中的项目进行分组,一种是先定义组,再定义项,并设置每个项的Groups属性;另一种是先定义项,再定义组,然后再将项加入一个组。7.2.6 ListView成员和显示模式的关系:ListView的一些成员(属性、方法、事件)有特定的适用视图。ListView的部分成员的适用视图成员解释适用范围Alignment属性用于设置每一项的对齐方式SmallIcon或LargeIconAutoArrange属性指出图标是否自动排列FindNearestItem方法按照给定的坐标开始搜索下一个项AutoResizeColumn方法调整列的宽度DetailsDrawSubItem事件自定义每一项的绘制HeaderStyle属性用于设置列头的样式Columns属性列头的集合Details或TitleGetItemAt方法在给定的坐标获取一个项FindItemWithText方法查找时指定文本的第一项Details、ListView或TitleGroups属性分组的集合除List之外的所有视图InsertionMark属性将某项拖动到新位置时,用于指示期望的拖放位置LargeIcon、SmallIcon或Title7.3 BackgroundWorker组件的使用:BackgroundWorker组件类简化了创建线程的操作,解决在Windows程序设计中可能会遇到耗时的操作。使用步骤:1 初始化BackgroundWorker实例;2 在实例的DoWork中执行可能比较费时的操作,同时,用实例的RunWorkerCompleted事件监听你的执行是否已经完成;3 调用BackgroundWorker和RunWorkerAsync方法开始执行你定义的操作。7.4 Process组件的使用:Process组件用来在Windows程序需要操作本机上正在运行的进程或者启动一个外部程序进程时使用的控件。Process提供了一些以Get开头的静态方法用于获取本地机器或者远程机器上正在运行的进程,这些方法有:l GetProcesses,(得到本地机器或者远程机器对于远程机器,必须有响应权限才能获取到上所有正在运行的进程)l GetProcessById,(通过进程的ID号获取进程)l GetProcessesByName等。(通过进程名获取进程信息)当函数获取一个进程,则使用Kill等函数对该程序进程进行操作,比较重要的函数有:Kill:用于停止进程。CloseMainWindow:向进程发送关闭窗体的信息。Close:关闭该进程的所有资源。当需要复位输入和输出流时,Process需要一个详细的启动信息ProcessStartInfo。下面时ProcessStartInfo的属性:1 UseShellExecute:是否使用系统的Shell程序执行,如果要复位向输入输出流,必须将该值设置为false;默认情况下该属性的值是true。2 RedirectStandardInput:是否复位向输入流,如果为true,则使用Process的StandardInput作为进程的输入流。3 RedirecrStandardOutput:是否复位向输出流,如果为true,则使用Process的StandardOutput作为进程的输出流。4 Arguments:Proc启动时所用的参数。7.5 Timer控件的使用:Timer控件是定期引发事件的组件。该组件主要的属性是Interval,该属性定义时间间隔的长度,其值以毫秒为单位。若启用Timer组件,每个时间间隔Interval将引发一个Tick事件,这是添加要执行的代码的位置。Timer组件的方法包括Start和Stop,这两种方法可以打开和关闭计时器,计时器在关闭时重置,不存在暂停Timer组件的方法。使用Timer步骤:(1) 添加Timer(手动代码添加或者从ToolBox拖入)。(2) 为计时器设置Interval属性(以毫秒为单位)(3) 在Tick事件处理程序内编写合适的代码。(4) 将Enabled属性设置为true,以启动计时器。Tick事件将开始发生,从而以设置的间隔运行过程。(5) 合适的时候,将Enabled属性设置为false,以使过程停止再次运行。7.6 EvenLog的使用:使用EventLog类可以在应用程序中访问或自定义Windows事件日志。事件源:发出日志的源头。事件源有一个使用字符区分的标识列,在程序中可以使用EventLog的静态方法SourceExists判断是否存在一个事件源。/判断事件源是否存在EventLog.SourceExists(“source1”);(1) 如果存在这个事件源,可以使用EventLog的Source把EventLog同事件源关联起来:/关联EventLog与事件源EventLog log=new EventLog();Log.Source=”source1”;(2) 如果不存在这个事件源,在程序中可以使用CreateEventSource方法创建这个事件源: /创建事件源EventLog.CreateEventSource(“source1”,”source description”);注

温馨提示

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

评论

0/150

提交评论