WinForm高级编程

上传人:hs****ma 文档编号:569247699 上传时间:2024-07-28 格式:PPT 页数:60 大小:6.22MB
返回 下载 相关 举报
WinForm高级编程_第1页
第1页 / 共60页
WinForm高级编程_第2页
第2页 / 共60页
WinForm高级编程_第3页
第3页 / 共60页
WinForm高级编程_第4页
第4页 / 共60页
WinForm高级编程_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《WinForm高级编程》由会员分享,可在线阅读,更多相关《WinForm高级编程(60页珍藏版)》请在金锄头文库上搜索。

1、ZJWCHCWinForm高级编程高级编程第十章第十章1目标目标了解了解 MDI 应用程序和应用程序和 SDI 应用程序应用程序了解菜单和掌握菜单控件的使用了解菜单和掌握菜单控件的使用掌握掌握 ImageList 控件控件掌握掌握 ToolBar 控件和控件和 StatusBar 控件控件掌握掌握Timer 控件控件掌握掌握 TreeView 控件控件掌握掌握 ListView 控件控件了解用于打印的各种类了解用于打印的各种类了解了解WinForms 中的打印过程中的打印过程2单文档和多文档单文档和多文档 2-1这是Ann的一个测试如已有一个文本文件打开,在同一记事本应用程序中,不允许创建第二

2、个文本文件新建一个记事本实例来打开第二个文本文件在SDI应用程序中一次只能打开一个文件3单文档和多文档单文档和多文档 2-2在MDI应用程序中可以同时打开多个文件应用程序窗口文档窗口4主窗体和子窗体主窗体和子窗体 3-1父窗体子窗体子窗体的菜单并入父窗体中5主窗体和子窗体主窗体和子窗体 3-2主窗体的特点:启动一个MDI应用程序时,首先显示父窗体它是应用程序中所有其他窗口的容器每个应用程序界面都只能有一个MDI父窗体在任何指定的时间都可以打开多个子窗体任何MDI子窗体都不能移出MDI框架区域关闭MDI父窗体则自动关闭所有打开的MDI子窗体6主窗体和子窗体主窗体和子窗体 3-3属性属性说明说明M

3、diChildren 用于获取表示多文档界面用于获取表示多文档界面 (MDI) 子窗体的窗体数子窗体的窗体数组组MdiParent 用于获取或设置当前多文档界面用于获取或设置当前多文档界面 (MDI) 父窗体父窗体 ActiveMdiChild 用于获取当前活动的多文档界面用于获取当前活动的多文档界面 (MDI) 子窗体子窗体 方法方法说明说明ActivateMdiChild用于激活子窗体用于激活子窗体LayoutMdi排列排列 MDI 父窗体中的多文档界面父窗体中的多文档界面 (MDI) 子窗体子窗体事件事件说明说明Closed由用户或窗体的由用户或窗体的 Close 方法关闭窗体后,发方法

4、关闭窗体后,发生该事件生该事件Closing正在关闭窗体时,发生该事件正在关闭窗体时,发生该事件MdiChildActivate在在 MDI 应用程序中激活或关闭多文档界面应用程序中激活或关闭多文档界面 (MDI) 子窗体时,触发该事件子窗体时,触发该事件MDI应用程序的属性、方法和事件如果窗体为MDI父窗体,则在触发MDI父窗体的Closing事件之前,将触发所有MDI子窗体的Closing事件。另外,在触发MDI父窗体的Closed事件之前,将触发所有MDI子窗体的Closed事件7创建创建 MDI 窗体窗体 TestFormobjChild=newTestForm();objChild.

5、MdiParent=this;objChild.Show();创建创建 MDI 窗体步骤:窗体步骤:q将IsMdiContainer属性设置为Trueq选择“项目”“添加Windows窗体”q添加给定的代码,将TestForm设置为子窗体MDI父窗体Closing事件的调用顺序:MDI子窗体8激活和去激活窗口激活和去激活窗口显示活动窗口this.ActivateMdiChild(frmChild);激活窗口MessageBox.Show(Convert.ToString(this.ActiveMdiChild);显示活动窗口的名称活动窗口9排列子窗口排列子窗口MDILayout枚举的成员成员名

6、称成员名称说明说明ArrangeIcons在在 MDI 父窗体的客户端区内排列所有父窗体的客户端区内排列所有 MDI 子窗体的图子窗体的图标标Cascade在在 MDI 父窗体的客户端区内层叠所有父窗体的客户端区内层叠所有 MDI 子窗口子窗口TileHorizontal 在在 MDI 父窗体的客户端区内水平平铺所有父窗体的客户端区内水平平铺所有 MDI 子窗口子窗口TileVertical在在 MDI 父窗体的客户端区内垂直平铺所有父窗体的客户端区内垂直平铺所有 MDI 子窗口子窗口10菜单和菜单组件菜单和菜单组件菜单提供了将命令分组的一致方法用户易于访问支持使用访问键启用键盘快捷方式一个菜

7、单可以带有若干子菜单菜单是程序中显示一个选项列表的图形元素11在设计阶段将MainMenu组件添加到窗体上菜单类型菜单类型 3-1属性属性说明说明IsParent 指定菜单是否包含菜单项,如果此属性的值为 True,指定菜单上则有菜单项 MdiListItem 表示菜单项,它列出 MDI 窗体的子窗体MenuItems 检索属于指定菜单的菜单项集合方法方法说明说明GetContextMenu检索包含指定菜单的上下文菜单的名称,默认值为 null 引用 GetMainMenu 检索包含指定菜单的主菜单的名称,如果此菜单不在 菜单内,则该属性返回 null 引用 MergeMenu 将指定菜单的菜

8、单项合并到当前活动的菜单中GetForm 检索包含指定菜单控件的窗体的名称上下文菜单上下文菜单MainMenu的属性和方法MainMenu控件包含多个MenuItem控件Menu类位于命名空间12菜单类型菜单类型 3-2属性属性说明说明Checked是否在指定菜单项的文本旁边显示复选标记,如果此属性设置为 True,则会在指定的菜单项旁边显示复选标记,默认值为 False Index指定菜单项在当前活动菜单中的索引值,此索引为赋给给每个菜单项的正整数,它从 0 开始 Mnemonic 获取一个指示与此菜单项关联的助记符的值,如果在菜单项的文本中没有指定助记符,则此属性返回字符 0 Parent

9、指定此菜单项所在菜单的名称Text菜单项显示的文本信息MenuItem的属性、方法和事件方法方法说明说明PerformClick触发菜单项的 Click 事件,而不需要用户实际上单击此菜单项 事件事件说明说明Click按下为菜单项指定的快捷键或访问键,或者用鼠标单击菜单项时,将触发该事件 13菜单类型菜单类型 3-3MainMenumnuMainMenu1=newMainMenu();this.Menu=mnuMainMenu1;mnuMainMenu1.MenuItems.Add(文件)标准前缀创建MenuItem的实例创建一个菜单项,并将它添加到主菜单上MenuItemmnuFileOpe

10、n;mnuFileOpen=newMenuItem(打开);this.mnuMainMenu1.MenuItems.Add(mnuFileOpen);14菜单类型菜单类型 3-4上下文菜单ContextMenu的属性、方法和事件属性说明SourceControl用于获取正在显示快捷菜单的控件用于获取正在显示快捷菜单的控件方法方法说明说明Show在指定位置显示快捷菜单在指定位置显示快捷菜单EventsDescriptionPopup在显示可快捷菜单前触发该事件在显示可快捷菜单前触发该事件ContextMenumnuContextMenu1=newContextMenu();this.Contex

11、tMenu=mnuContextMenu1;在运行时创建上下文菜单:快捷菜单:单击鼠标右键时显示的快捷菜单;菜单会因用户右键单击位置的不同而不同15在运行时添加在运行时添加/移除菜单项移除菜单项 2-1 MainMenumnuMainMenu1=newMainMenu();MenuItemmnuAddItem=newMenuItem();MenuItemmnuRemoveItem=newMenuItem();mnuAddItem.Text=“添加(&A);mnuRemoveItem.Text=“移除(&R);mnuMainMenu1.MenuItems.Add(mnuAddItem);mnuM

12、ainMenu1.MenuItems.Add(mnuRemoveItem);this.Menu=mnuMainMenu1;DialogResultpreference=newDialogResult();preference=MessageBox.Show(“是否要添加新菜单项?”,“添加,MessageBoxButtons.YesNo);添加键盘快捷方式助记符添加菜单项添加菜单项16在运行时添加在运行时添加/移除菜单项移除菜单项 2-2if(Convert.ToString(preference)=“是)mnuMainMenu1.MenuItems.Add(“新菜单);DialogResul

13、tpreference1=newDialogResult();preference1=MessageBox.Show(“是否要移除新菜单项?”,“移除,MessageBoxButtons.YesNo);if(Convert.ToString(preference1)=“是)mnuMainMenu1.MenuItems.RemoveAt(2);添加菜单项移除第三个位置上的菜单项17 ImageList 控件控件属性说明Images 该属性表示图像列表中包含的图像的集合该属性表示图像列表中包含的图像的集合ImageSize 该属性表示图像的大小,默认高度和宽度为该属性表示图像的大小,默认高度和宽度

14、为 16 x 16,最大大小为,最大大小为 256 x 256方法说明Draw该方法用于绘制指定图像该方法用于绘制指定图像ImageList控件的属性和方法位于 命名空间内(Image.FromFile(picture.gif);=this.imgImageList1.Images0;在 ImageList 控件中添加图像的代码Image类的FromFile()方法用于手动将图像文件添加到ImageList控件中18两个类ToolBarToolBarButtonToolBar 控件控件属性属性说明说明Buttons 工具栏按钮控件的集合工具栏按钮控件的集合 ShowToolTips鼠标移到各工

15、具栏按钮上时,是否显示相应的工具提示,鼠标移到各工具栏按钮上时,是否显示相应的工具提示,如果该属性的值设置为如果该属性的值设置为 True,则显示工具提示,则显示工具提示 事件事件说明说明ButtonClick 单击工具栏按钮时,将触发该事件单击工具栏按钮时,将触发该事件ToolBar类的属性和事件属性属性说明说明ImageIndex 为工具栏按钮指定的图像在图像列表中的索引值为工具栏按钮指定的图像在图像列表中的索引值 Parent指定工具栏按钮所属的指定工具栏按钮所属的 ToolBar 控件控件Style 工具栏按钮的样式,其中包括工具栏按钮的样式,其中包括 DropDownButton(下

16、拉按钮)、(下拉按钮)、Separator(分隔符)(分隔符) 和和 ToggleButton(切(切换按钮)换按钮) ToolTipText表示工具栏按钮的工具提示文本表示工具栏按钮的工具提示文本ToolBarButton类的属性和事件19工具栏工具栏 示例示例创建名为Example1的Windows应用程序。将Form1.cs更改为frmToolBarExample.cs。将ToolBar控件拖动到窗体上,并将它命名为tbrToolBar。选择Buttons属性,并单击按钮以显示“ToolBarButton集合编辑器”窗口。添加三个按钮。添加了三个按钮输出屏幕privatevoidtbrT

17、oolBar_ButtonClick(objectsender,e)if(e.Button=this.tbrToolBar.Buttons0)MessageBox.Show(“已单击“打开”按钮);处理ButtonClick事件的代码20 StatusBar 控件控件属性属性说明说明Panels表示表示 StatusBar 控件的所有面板控件的所有面板 ShowPanels用于指定是否显示状态栏的面板用于指定是否显示状态栏的面板StatusBar类的属性两个类StatusBarPanelStatusBar属性属性说明说明Text用于获取或设置状态栏面板的文本用于获取或设置状态栏面板的文本Too

18、lTipText用于获取或设置与状态栏面板关联的工具提示用于获取或设置与状态栏面板关联的工具提示文本文本StatusBarPanel类的属性在状态栏的第二个面板上显示当前日期的代码sbrStatusBar1.Panels1.Text=Convert.ToString(DateTime.Today);.21创建名为BookManagement的Windows应用程序。将名称Form1.cs更改为frmMdiApplication.cs。将Menu、StatusBar、ToolBar和ImageList控件拖动到窗体上。应用程序示例应用程序示例 4-1由菜单、工具栏和状态栏组成的应用程序由菜单、工

19、具栏和状态栏组成的应用程序演示:创建Windows应用程序示例的步骤22应用程序示例应用程序示例 4-2控件控件属性属性控件控件属性属性FormName: frmMdiApplicationText: 图书管理系统图书管理系统Menu: mnuBookManageIsMdiContainer: True MenuItemName:mnuEnginerrBookText:工程类图书工程类图书MenuName: mnuBookManageMenuItemName:mnuForeignBookText:外文类图书外文类图书MenuItemName: mnuEnterStoreText: 新书入库新书

20、入库(&N) MenuItemName:mnuChineseBookText:中文类图书中文类图书MenuItemName: mnuSearchBookText: 查询书目查询书目(&S) ToolBarName: tbrBookBarMenuItemName: mnuConManageText: 菜单管理菜单管理(&M) StatusBarName: sbrBookStatusMenuItemMenuItemName:mnuExitText: 退出系统退出系统(&E)设置窗体上控件的属性23应用程序示例应用程序示例 4-3选择ToolBar控件,单击ToolBar控件的Buttons属性,此

21、时会出现“ToolBarButton集合编辑器”窗口,向其中添加3个按钮,并分别命名为trbNewBooks、trbBookSearch和trbExit。分别在Text属性处输入入库、查询和退出单击“确定”以继续24应用程序示例应用程序示例 4-4选择StatusBar控件,并将ShowPanels属性设置为True选择Panels属性,并添加两个面板,命名为sbrTimeBar和sbrNameBar单击“确定”以继续创建新窗体,命名为frmNewBooks.cs,当鼠标单击“工程类图书”菜单选项时弹出此窗体将以下代码添加到frmMdiForm的Load事件中privatevoidfrmMdi

22、Form_Load(objectsender,System.EventArgse)this.sbrBookStatus.Panels0.Text=();在mnuEnginerrBook菜单项的Click事件中添加代码privatevoidmnuEnginerrBook_Click(objectsender,System.EventArgse)frmNewBooksnewBooks=newfrmNewBooks();newBooks.MdiParent=this;newBooks.WindowState=FormWindowState.Maximized;newBooks.Show();this

23、.sbrBookStatus.Panels1.Text=this.ActiveMdiChild.Text.ToString();将以下代码添加到mnuConManage“菜单管理”的Click事件中privatevoidmnuConManage_Click(objectsender,System.EventArgse)ContextMenumnuContextMenu=newContextMenu();this.ContextMenu=mnuContextMenu;mnuContextMenu.MenuItems.Add(新书入库);mnuContextMenu.MenuItems.Add(查

24、询书目);mnuContextMenu.MenuItems.Add(退出系统);25应用程序示例应用程序示例 4-5将以下代码添加到mnuExit菜单项的Click事件中privatevoidmnuExit_Click(objectsender,System.EventArgse)this.Close();将以下代码添加到tbrBookBar工具栏按钮的ButtonClick事件中privatevoidtbrBookBar_ButtonClick(objectsender,e)if(e.Button=this.tbrBookBar.Buttons0)this.mnuEnginerrBook_C

25、lick(sender,e);elseif(e.Button=this.tbrBookBar.Buttons1)MessageBox.Show(书籍查询系统正在建设中);elseif(e.Button=this.tbrBookBar.Buttons2)this.mnuExit_Click(sender,e);26Timer 控件简介控件简介 3-103:15:04在应用程序中显示实际时间按指定的时间长度显示图像需要一种可在程序运行时操控时间的机制WinFormsWinForms的的TimerTimer控件控件27Timer 控件简介控件简介 3-2拖放28Timer 控件简介控件简介 3-3对

26、特定的时刻响应按照某个周期触发事件与用户无关,可以通过编程,在规定的时刻执行相应动作组件与其他控件不同,它不向用户提供用户界面,因此没有必要显示在WinForms设计器的界面上Timer类包含在命名空间中29Timer 控件的必要性控件的必要性Timer控件为开发人员提供了一种在经过指定的时间间隔或到达指定的绝对时间时根据代码进行响应的方式30Timer 控件的属性、方法和事件控件的属性、方法和事件属性属性EnabledInterval方法方法Start()Stop()事件事件TickTimer控件名的前缀是tmr“例如:tmrTicker,tmrTickTimer31Timer 控件应用程序

27、示例控件应用程序示例 4-1要求显示计算机运行的时间长度和应用程序运行的时间长度32Timer 控件应用程序示例控件应用程序示例 4-2publicclassfrmTickCounter:privateintcompuTime;.为窗体声明一个私有整型变量privatevoidfrmTickCounter_Load(objectsender,System.EventArgse)compuTime=Environment.TickCount;frmTickCounter窗体的Load事件33Timer 控件应用程序示例控件应用程序示例 4-3privatevoidtmrTickTimer_Tic

28、k(objectsender,System.EventArgse)longcurTickValue=Environment.TickCount;longdifference=curTickValue-compuTime;longcomputerHours,computerMinutes,computerSeconds;longapplicationHours,applicationMinutes,applicationSeconds;/将毫秒转换成小时、分钟和秒computerHours=(curTickValue/(3600*999)%24;computerHours=(curTickVal

29、ue/(3600*999)%24;computerMinutes=(curTickValue/(60*999)%60;computerSeconds=(curTickValue/999)%60;applicationHours=(difference/(3600*999)%24;applicationMinutes=(difference/(60*999)%60;applicationSeconds=(difference/999)%60;应用程序中使用的局部变量将毫秒转换成小时、分钟和秒34Timer 控件应用程序示例控件应用程序示例 4-4=String.Format(“这台计算机已经开机

30、0小时,1分钟2秒,computerHours.ToString(),computerMinutes.ToString(),computerSeconds.ToString();=String.Format(“这个程序已经运行了0小时,1分钟2秒,applicationHours.ToString(),applicationMinutes.ToString(),applicationSeconds.ToString();显示每个标签的输出结果privatevoidbtnClose_Click(objectsender,System.EventArgse)this.Close();关闭应用程序3

31、5ListView 控件控件 2-1可折叠的TreeViewListView选择列出项目的视图类型36ListView 控件控件 2-2创建与Windows资源管理器的右窗口相似的用户界面可用于以特定样式或视图类型显示列表项四种视图模式,即大图标、小图标、列表和详细资料37ListView 控件的属性和方法控件的属性和方法属性属性ItemsMultiSelectSelectedItemsSortingTopItemView方法方法Clear()GetItemAt()Sort()ListView控件名的前缀是“lvw“如:lvwList,lvwListItems38Column 集合和集合和 C

32、olumn 对象对象ListView 控件的控件的 Columns 属性表示控件中属性表示控件中出现的所有列标题的集合出现的所有列标题的集合列标题是列标题是 ListView 控件中包含标题文本的一控件中包含标题文本的一个项个项ColumnHeader 对象定义在控件的对象定义在控件的 View 属属性设置为性设置为“Details”值时,作为值时,作为 ListView 控控件的一部分显示的那些列件的一部分显示的那些列 如果如果 ListView 控件没有没有任何列标题,并控件没有没有任何列标题,并且且 View 属性设置为属性设置为 Details,则,则 ListView 控件不显示任何

33、项控件不显示任何项39添加列标题添加列标题方法一:ColumnHeaderobjHeader=newColumnHeader();objHeader.Text=姓名;objHeader.TextAlign=HorizontalAlignment.Center;objHeader.Width=100;lvPerson.Columns.Add(objHeader);方法二:(姓名,60,HorizontalAlignment.Right);添加多个列应该如何做?40项集合和项对象项集合和项对象ListView 控件的控件的 Items 属性表示包含控件中属性表示包含控件中所有项的集合所有项的集合

34、该属性返回该属性返回 ListView.ListViewItemCollection,可以,可以用于用于 ListView 中添加新项、删除项或计算可用中添加新项、删除项或计算可用项数项数 41添加记录添加记录ListViewItemlstItem=newListViewItem();();lstItem.SubItems0.Text=readername.ToString();/第0列(readerHomePhone.ToString();/第1列。(readerEmail.ToString();/第n列lvPerson.Items.Add(lstItem)实例化一个ListViewItem

35、设置各列的数值将定义好的数值添加到ListView里面添加多行数据怎么办?42TreeView 控件控件 2-143TreeView 控件控件 2-2用于以节点形式显示文本或数据,这些节点按层次结构顺序排列Windows资源管理器中左窗格所包含的目录和文件是以树型视图样式排列的在TreeView控件中,复选框和图标可以和文本一起显示44节点集和节点对象节点集和节点对象TreeView 控件的控件的 Nodes 属性表示为属性表示为 TreeView 控件指定的树节点集控件指定的树节点集 树节点集中的每个树节点对象可包括它本身的树树节点集中的每个树节点对象可包括它本身的树节点集节点集树节点集中树

36、节点集中 Add()、Remove() 和和 RemoveAt() 方法使开发人员可添加和移动方法使开发人员可添加和移动集中的单个树节点集中的单个树节点 45添加、修改和删除节点添加、修改和删除节点 3-1 TreeView 控件以层次结控件以层次结构方式显示节点构方式显示节点在将新节点添加到现有在将新节点添加到现有 TreeView 时,重要的是时,重要的是注意新节点所添加到的父节注意新节点所添加到的父节点点可用设计器模式或用户界面可用设计器模式或用户界面在在 TreeView 上添加或删上添加或删除节点除节点46添加、修改和删除节点添加、修改和删除节点 3-2在窗体上选择已存在的TreeV

37、iew控件或在窗体上添加一个新控件在“属性”窗口中单击节点属性旁的省略号()按钮,调用树节点编辑器添加到树的第一个节点是根节点,其他节点可添加到存在根节点的树上通过选择根节点或任何其他节点,然后单击“添加子级”按钮,可为树添加子节点要使用树节点编辑器删除节点,请重复步骤1和2。调用树节点编辑器,然后选择要删除的节点,单击“删除”47添加、修改和删除节点添加、修改和删除节点 3-3可通过编程方式向TreeView添加节点TreeNodechNode=newTreeNode(Textfornewnode);tvwTree1.currNode.Nodes.Add(chNode);可通过编程方式从Tr

38、eeView删除节点.tvwTree1.Nodes.Remove(tvwTree1.currNode);/清除所有节点tvwTree1.Nodes.Clear();如果没有选定要删除的节点,则会删除根节点48TreeView 控件的事件控件的事件事件AfterCheckAfterCollapseAfterExpandAfterSelectBeforeCheckBeforeCollapseBeforeExpandBeforeSelectTreeView控件名的前缀是tvw如:tvwTree,tvwList49程序实例程序实例需求需求列出文件夹的TreeView对TreeView的控制显示节点的属

39、性50添加盘符添加盘符privatevoidFilltvwDirectory()stringdrives=Environment.GetLogicalDrives();/获取当前设备盘符,并添加到数组driversl里面for(inti=0;idrives.Length;i+)TreeNodecRoot=newTreeNode(drivesi);/这里可以写成/TreeNodecRoot=newTreeNode();/cRoot.Text=driversi;tvwDirectory.Nodes.Add(cRoot);AddDirectories(cRoot);/添加该盘符下的文件夹获取盘符并添

40、加到数组里面将该盘符添加到TreeView并调用AddDirectories()方法添加盘符下的文件夹51添加下一级文件夹添加下一级文件夹privatevoidAddDirectories(TreeNodenode)tryDirectoryInfodir=newDirectoryInfo(GetPathFromNode(node);DirectoryInfoe=dir.GetDirectories();for(inti=0;ie.Length;i+)stringname=ei.Name;if(!name.Equals(.)&!name.Equals(.)/判断是否是上级目录node.Nodes

41、.Add(newTreeNode(name);catch(Exceptione)MessageBox.Show(e.Message);利用GetPathFromNode()方法获取当前节点的路径并找到他的下级文件夹,之后添加到DirectoryInfo数组内若文件夹不是返回上级目录标志则添加到TreeView里面52展开节点展开节点privatevoidtvwDirectory_BeforeExpand(objectsource,TreeViewCancelEventArgse)TreeNodenodeExpanding=(TreeNode)e.Node;AddSubDirectories(n

42、odeExpanding);/调用AddDirectories将该节点的字节点添加到树图中该节点下privatevoidAddSubDirectories(TreeNodenode)for(inti=0;i;i+)AddDirectories(node.Nodesi);用户点击“+”展开下一级目录时调用此事件添加下级目录53排序节点排序节点privatevoidchkOrder_Click(objectsource,EventArgse)=chkOrder.Checked;/树图排序for(inti=0;i 0) if (node.IsExpanded) string tooBigExpand

43、edNodes = new stringnode.GetNodeCount(true); int iExpandedNodes = Refresh_GetExpanded(node, tooBigExpandedNodes,0); string expandedNodes = new stringiExpandedNodes; Array.Copy(tooBigExpandedNodes, 0, expandedNodes, 0, iExpandedNodes);();AddDirectories(node);AddSubDirectories(TreeNode)node);node.Expa

44、nd();for (int j = 0; j 0) Refresh_Expand(node.Nodesj, expandedNodes); else node.Nodes.Clear();AddDirectories(node); else (); AddDirectories(node); 获取已经展开的节点,并把它存放在数组中将当前展开的节点添加到TreeView并展开它的子节点55获取展开节点获取展开节点privateintRefresh_GetExpanded(TreeNodeNode,stringExpandedNodes,intStartIndex)if(StartIndexExp

45、andedNodes.Length)if(Node.IsExpanded)ExpandedNodesStartIndex=Node.Text;StartIndex+;for(inti=0;i=0;i-)if(ExpandedNodesi=Node.Text)AddSubDirectories(TreeNode)Node);Node.Expand();for(intj=0;j;j+)Refresh_Expand(Node.Nodesj,ExpandedNodes);return;若数组中下标为i的节点就是当前节点,则添加当前节点的子节点,并把当前节点设为展开,同时展开当前节点的子节点57总结总结

46、 3-1单文档界面的某一时刻只能打开一个文档,多文单文档界面的某一时刻只能打开一个文档,多文档界面允许同时打开多个文档档界面允许同时打开多个文档MDI应用程序由一个应用程序由一个MDI父窗体和一个或多个父窗体和一个或多个子窗体构成子窗体构成菜单是程序中显示一个选项列表的图型元素,它菜单是程序中显示一个选项列表的图型元素,它提供将命令分组的方法和用户对其访问的简单途提供将命令分组的方法和用户对其访问的简单途径径上下文菜单用于使用户通过单击鼠标右键访问常上下文菜单用于使用户通过单击鼠标右键访问常用的命令用的命令58总结总结 3-2ImageList 控件是一种图形存储控件,可以控件是一种图形存储控

47、件,可以包含单个图像或图像集合包含单个图像或图像集合工具栏包含工具栏按钮,这些按钮提供对应用程工具栏包含工具栏按钮,这些按钮提供对应用程序中最常用的菜单命令的快速访问序中最常用的菜单命令的快速访问状态栏通常显示在窗体的底部,向用户提供有关状态栏通常显示在窗体的底部,向用户提供有关应用程序状态的信息应用程序状态的信息Timer 控件为开发人员提供了一种在指控件为开发人员提供了一种在指定时刻或指定的周期执行任务的控件定时刻或指定的周期执行任务的控件59总结总结 3-3Timer 控件的控件的 Interval 属性表示时钟的周属性表示时钟的周期,单位为毫秒期,单位为毫秒ListView 控件用于以特定样式或视图类型显控件用于以特定样式或视图类型显示列表项,其示列表项,其Items集合对象提供了对其列表集合对象提供了对其列表项的操作项的操作TreeView 控件用于以节点形式显示文本或数控件用于以节点形式显示文本或数据,这些节点按层次结构顺序排列据,这些节点按层次结构顺序排列TreeView控件的控件的Nodes集合对象提供了对树集合对象提供了对树型节点的操作型节点的操作60

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号