




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第7章高级控件及自定义控件的使用 VisualC 程序设计 2 TabControl控件ListView控件hScrollBar和vScrollBar控件ProgressBar控件TreeView控件自定义控件 3 7 1选项卡控件 TabControl 在Windows应用程序中 选项卡用于将相关的控件集中在一起 放在一个页面中选项卡控件用于显示多个选项卡 其中每个选项卡均可包含图片和其他控件选项卡相当于另一个窗体 可以容纳其他控件 选项卡控件 4 1 选项卡控件的属性 5 2 选项卡控件的事件 6 第一步 1 创建一个TestTabControl的Windows应用程序 向设计窗体上拖放一个TabControl控件 调整大小 2 向窗体上拖放一个ImageList控件 添加三个图标 并修改ImageSize属性为32 32 修改ColorDepth为Depth32Bit 3 设置TabControl的ImageList属性为imageList1 4 设置TabControl的TabPages属性 添加三个TabPage 点击 确定 再分别在三个TabPage上放一些控件便于区分 7 1 操作示例 7 设计界面如图所示 通讯录界面 8 记事薄界面 9 日程安排界面 10 第二步 运行 观察结果 第三步 修改imageList1的ImageSize属性为16 16 修改ColorDepth为Depth8Bit 重新运行观察结果 11 7 2ListView控件 ListView控件用列表的形式显示一组数据 通常使用ListView来显示对数据库的查询结果 Windows系统中的文件浏览器就是一个ListView控件 ListView包含一个ListViewItems集合 ListViewItems允许设置一个用于显示的Text属性 它的另一个属性SubItems包含在详细视图中显示的文本 12 ListView控件常用属性1 View属性 表示数据的显示模式 常用的有如下选择 LargeIcons 大图标视图模式 在项的文本旁显示大的图标 SmallIcons 小图标视图模式 在项的文本旁显示小的图标 List 列表视图模式 显示小图标 但项是垂直排列的 只显示单列 Details 详细资料视图模式 是最丰富的选项 它不但允许您查看项 还允许您查看为各项指定的任何子项 13 2 Items属性 列表视图的选项集合 向ListView控件添加项的几种方法 1 方法是在ListView控件的属性窗口中选择Items属性 2 还可以使用ListView控件的Items Add 方法来为它添加新项 Add 方法的格式如下 Add text imageIndex text为要添加项所显示的文本imageIndex为可选参数 指示所对应ImageList中的图标索引3 也可以使用insert方法 和listbox的Items属性类似 14 3 colums属性 为ListView控件添加列标题1 在属性窗口中找到Columns属性 在弹出的集合编辑器中添加和删除列标题 可在编辑器中编辑显示的文本 宽度以及对齐方式 2 使用Columns Add方法动态添加列标题ListView1 Columns Add 文本 宽度 对齐方式 如 listView1 Columns Add 列1 50 HorizontalAlignment Left 注意 添加完列标题之后记得把ListView控件的View属性设置为Details 才能显示出列标题来 15 4 HeaderStyle属性该属性只在Details视图模式下才起作用 HeaderStyle属性指示列标头样式 它有下面三种显示样式 Clickable 列标头的作用类似按钮 单击时可以执行操作 例如排序 Nonclickable 列标头不响应鼠标单击 None 列标头在视图中不显示 16 5 MultiSelect属性 表示是否允许多行选择 6 LargeImageList属性 这个属性包含ImageList 而ImageList包含大图像 这些图像可以在View属性为LargeIcon时使用 7 SmallImageList属性 这个属性包含ImageList 而ImageList包含小图像 这些图像可以在View属性为SmallIcon时使用 17 8 Sorting属性 指示控件中项的排序顺序 默认情况下 不执行排序 当Sorting属性设置为Ascending或Descending时 ListView中的项自动按照升序字母顺序 为Ascending时 或降序字母顺序 为Descending时 进行排序 使用户在大量项可用时更容易查找到项 9 FullRowSelect属性 单击某项时 是只选择该项 还是应选该项所在的整行 默认值为false 说明 除非将ListView控件的View属性设置为Details 否则FullRowSelect属性无效 18 10 GridLines属性 GridLines属性 指定在包含控件中项及其子项的行和列之间是否显示网格线 默认值为false 说明 除非将ListView控件的View属性设置为Details 否则GridLines属性无效 19 20 创建一个TestListView的应用程序 然后向窗体上拖放一个ListView控件 4个Label控件 3个TextBox控件 textBoxName textBoxAddress textBoxPhone 两个Button控件 buttonAppend buttonDelete 和一个Combobox控件 并适当调整控件和窗体的位置和大小 设置Combobox控件的 DropDownStyle 属性为 DropDownList 并设置其 Items 属性为 大图标 小图标 列表 详细列表 7 2 操作示例 21 3 添加一个ImageList控件 imageList1 设置然后向该控件中加入1个16 16的图标文件 4 添加一个ImageList控件 imageList2 设置然后向该控件中加入1个32 32的图标文件 并设置ImageSize为32 32 5 设置ListView控件的属性 LargeImageList 选imageList2SmallImageList 选imageList1Columns 姓名 width 100 地址 width 250 电话 width 100 View 当前显示模式 设为 Details FullRowSelect true 22 窗体如图所示 23 6 实现 添加 按钮的Click响应事件 privatevoidbuttonAppend Click objectsender System EventArgse intitemNumber listView1 Items Count string subItem textBoxName Text textBoxAddress Text textBoxPhone Text listView1 Items Insert itemNumber newListViewItem subItem listView1 Items itemNumber ImageIndex 0 指定图标索引值textBoxName Text textBoxPhone Text textBoxAddress Text 24 7 实现 删除 按钮的Click响应事件 privatevoidbuttonDelete Click objectsender System EventArgse for inti listView1 SelectedItems Count 1 i 0 i ListViewItemitem listView1 SelectedItems i listView1 Items Remove item 25 8 添加comboBox1的SelectedIndexChanged事件privatevoidcomboBox1 SelectedIndexChanged objectsender System EventArgse stringstr comboBox1 SelectedItem ToString switch str case 大图标 listView1 View View LargeIcon break case 小图标 listView1 View View SmallIcon break case 列表 listView1 View View List break default listView1 View View Details break 26 运行结果如图所示 27 用于上下或者左右滚动整个窗口或者文档在MicrosoftWord或Excel中 为浏览多页面的文档提供了滚动条 滚动条 垂直滚动条 水平滚动条 滚动条的属性和事件如下 带有滚动条的MSWord文档窗口 7 3滚动条 28 29 privatevoidhScrollBar1 ValueChanged objectsender EventArgse Text string Format 0 1 hScrollBar1 Value vScrollBar1 Value privatevoidvScrollBar1 ValueChanged objectsender EventArgse Text string Format 0 1 hScrollBar1 Value vScrollBar1 Value 例子 30 7 4进度条 ProgressBar 用于指示操作的进度 完成的百分比外观是排列在水平条中的一定数目的矩形 31 1 进度条的属性和方法 32 下面的例子说明了如何使用进度条来显示一个较长时间的计算过程 第一步 在窗体上放两个ProgressBar控件 两个Label控件 两个TextBox控件 一个Button控件 如图 33 第二步 添加 开始计算 按钮的Click响应事件 privatevoidbutton1 Click objectsender System EventArgse button1 Enabled false intoutLoop Int32 Parse textBox1 Text intinnerLoop Int32 Parse textBox2 Text progressBar1 Maximum outLoop progressBar2 Maximum innerLoop for inti 1 i outLoop i for intj 1 j innerLoop j doubled i j if j 100 0 progressBar2 Value j progressBar1 Value i button1 Enabled true 第三步 运行 观察结果 34 7 5TreeView 树形视图 控件 可以使用TreeView控件显示具有层次结构的数据 比如磁盘目录 文件和数据库结构等 常见的是在Windows操作系统的资源管理器的左窗格中显示文件和文件夹 树视图中的各个节点都可以包含其他节点 用户可以按展开或折叠的方式显示父节点或包含子节点的节点 35 36 1 显示层层节点 treeView1 Nodes Add 父节点0 treeView1 Nodes 0 Nodes Add 第1个父节点的子节点0 treeView1 Nodes 0 Nodes 0 Nodes Add 第1个父节点第1个子节点的孙节点0 treeView1 Nodes 0 Nodes 0 Nodes Add 第1个父节点第1个子节点的孙节点1 treeView1 Nodes 0 Nodes Add 第1个父节点的子节点1 treeView1 Nodes Add 父节点1 treeView1 Nodes 1 Nodes Add 第2个父节点的子节点0 依次类推 Nodes属性代码使用 37 2 提取节点数据 1 明确路径的数据提取 string父节点名字 treeView1 Nodes 0 Text 第一个父节点的文本string子节点名字 treeView1 Nodes 0 Nodes 0 Text 第一个父节点的第一个子节点文本string孙节点名字 treeView1 Nodes 0 Nodes 0 Nodes 1 Text 第一个父节点第一个子节点的第二个孙节点文本依次类推 38 2 选中节点的提取 string选中的节点 treeView1 SelectedNode Text string选中的节点的第一个子节点 treeView1 SelectedNode Nodes 0 Text string选中的节点的第二个子节点的第三个孙节点 treeView1 SelectedNode Nodes 1 Nodes 2 Text 依次类推 3 删除节点 treeView1 Nodes Remove treeView1 SelectedNode treeView1 Nodes RemoveAt index 4 清空节点 treeView1 Nodes Clear 39 5 其他属性 treeView1 Nodes 0 Nodes 0 FirstNode 本节点的子集中第一个节点 非同级 treeView1 Nodes 0 Nodes 0 LastNode 本节点的子集中最后一个节点 非同级 treeView1 Nodes 0 Nodes 0 NextNode 同级树节点的下一个节点 同级 treeView1 Nodes 0 Nodes 1 PrevNode 同级树节点的前一个节点 同级 treeView1 Nodes 0 Nodes 0 Parent 获取父节点treeView1 Nodes 0 Nodes 0 FullPath 获取节点完整路径 返回String 40 另外 通过将树视图的CheckBoxes属性设置为True 可以在节点旁边显示复选框 用户可以通过将节点的Checked属性设置为True或False来选中或清除节点 41 常用方法 42 常用事件 会触发此事件 43 第一步 向设计窗体拖放一个TreeView控件 两个TextBox控件 name属性分别为textBoxRoot textBoxChild 四个Button控件 name属性分别为buttonAddRoot buttonAddChild buttonDelete buttonEdit 如下图所示 7 3 操作示例 44 45 第二步 从工具箱中向窗体拖放一个ImageList控件 选择其 Image 属性 然后添加三幅图像 第三步 设置TreeView控件的属性 ImageList属性 imageList1 Nodes属性 添加初始的根节点和子节点以及节点的图像 46 第四步 添加展开某个节点后发出的AfterExpand事件 privatevoidtreeView1 AfterExpand objectsender System Windows Forms TreeViewEventArgse e Node ImageIndex 1 e Node SelectedImageIndex 1 47 第五步 添加折叠某个节点后发出的AfterCollapse事件 privatevoidtreeView1 AfterCollapse objectsender System Windows Forms TreeViewEventArgse e Node ImageIndex 0 e Node SelectedImageIndex 0 48 第六步 添加下列事件 privatevoidbuttonAddRoot Click objectsender System EventArgse 构造节点显示内容 取消选定时显示图像索引号 选定时显示图像索引号TreeNodenewNode newTreeNode textBoxRoot Text 2 2 treeView1 Nodes Add newNode 49 privatevoidbuttonAddChild Click objectsender System EventArgse TreeNodeselectedNode treeView1 SelectedNode if selectedNode null MessageBox Show 添加子节点前应选中一个节点 提示 return TreeNodenewNode newTreeNode textBoxChild Text 2 2 selectedNode Nodes Add newNode selectedNode SelectedImageIndex 1 selectedNode Expand 展开 将新节点显示出来 50 privatevoidbuttonDelete Click objectsender System EventArgse TreeNodeselectedNode treeView1 SelectedNode if selectedNode null MessageBox Show 删除节点前应选中一个节点 提示 return 获得选中节点的父节点TreeNodeparentNode selectedNode Parent 51 if parentNode null 说明选中节点为根结点 treeView1 Nodes Remove selectedNode else parentNode Nodes Remove selectedNode if parentNode Nodes Count 0 如果移去节点之后 父节点无子节点需改变图标 parentNode ImageIndex 2 parentNode SelectedImageIndex 2 52 privatevoidbuttonEdit Click objectsender EventArgse treeView1 SelectedNode BeginEdit 注意 在使用这个属性的时候 必须设置treeView1 LabelEdit true 否则会提示错误 第七步 运行 测试结果 53 虽然VisualStudio NET附带了大量的控件 但仍不能满足各个应用程序的特殊需要 比如说 VisualStudio NET自带的控件不能以我们希望的方式进行使用 而我们却希望把控件的功能和界面一起封装 此时 我们就需要自己开发一个新的控件 为此 VisualStudio NET提供了一个工程类型WindowsControlLibrary 使用它可以创建自己的控件 自定义控件基本思想是允许开发人员生成新的功能 把现有的控件聚集到一个公共控件上 使之可以在应用程序中重复使用 7 6用户自定义控件 54 VS2005winform中编辑自定义控件 步骤如下 1 点击文件 新建项目 选择Windows控件库2 编辑用户所需的控件3 点击生成 生成项目名称 完成这一步后会在bin或debug目录下看到 项目名称 dll 文件 这个便是你的控件库了4 在需要使用该控件的程序中点击工具 选择工具项 浏览 选择刚才的那个 dll文件 这样你便会在你的工具箱中找到你的那个控件 55 定制控件示例 从UserControl类继承 本示例将Label和Timer两个控件绑定到一起 实现通过标签显示系统当前时间 每秒刷新一次 1 在VisualStudio NET中创
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议小说改编:情感纠葛与财产分割的法律博弈
- 《养老金分割及医疗保险权益离婚协议书》
- 离婚诉讼标的财产分割与子女抚养权、赡养协议
- 个人投资咨询授权委托书全权提供投资建议合同
- 离婚财产分割协议:跨境资产分割及汇率风险控制书
- 离婚协议中知识产权转让及收益分配补充协议书
- 砂石料运输合同书范本:新型城镇化建设配套服务
- 互联网公司员工竞业限制与保密条款合同
- 金融机构个人收入证明范本制作与金融产品销售合同
- 离婚协议书及财产分割与子女抚养权执行协议
- GB/T 19867.6-2016激光-电弧复合焊接工艺规程
- GB/T 19478-2018畜禽屠宰操作规程鸡
- 三级教育考试卷(焊工)答案
- 无生上课课堂教学评价标准
- 深圳低压电工作业-实际操作培训课件-科目四-作业现场应急处理
- 中控岗位培训课件
- 宾馆酒店前台责任书
- 2.2 第2课时 基本不等式的综合应用(课件)高一数学(人教A版2019必修第一册)
- 勿忘国耻教学课件
- 《中国音乐发展简史》PPT课件
- 生活老师管理制度(7)
评论
0/150
提交评论