高级控件及自定义控件的使用.ppt

上传人:wuy****n92 文档编号:91996874 上传时间:2023-05-29 格式:PPT 页数:63 大小:1.43MB
返回 下载 相关 举报
高级控件及自定义控件的使用.ppt_第1页
第1页 / 共63页
高级控件及自定义控件的使用.ppt_第2页
第2页 / 共63页
点击查看更多>>
资源描述

《高级控件及自定义控件的使用.ppt》由会员分享,可在线阅读,更多相关《高级控件及自定义控件的使用.ppt(63页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1第二章 高级控件及自定义控件的使用Visual C#程序设计2 TabControl控件 ListView控件 hScrollBar和vScrollBar控件 ProgressBar控件 TreeView控件 自定义控件32.1 选项卡控件(TabControl)z在 Windows 应用程序中,选项卡用于将相关的控件集中在一起,放在一个页面中z选项卡控件用于显示多个选项卡,其中每个选项卡均可包含图片和其他控件z选项卡相当于另一个窗体,可以容纳其他控件选项卡控件41、选项卡控件的属性属性 说明MultiLine指定是否可以显示多行选项卡。如果可以显示多行选项卡,该值应为 True,否则为 F

2、alse。默认值为 FalseSelectedIndex当前所选选项卡页的索引值。该属性的值为当前所选选项卡页的基于0的索引。默认值为-1。SelectedTab当前选定的选项卡页。如果未选定选项卡页,则值为 NULL 引用ShowToolTips指定在鼠标移至选项卡时,是否应显示该选项卡的工具提示。如果对带有工具提示的选项卡显示工具提示,该值应为 True,与每个选项卡的tooltiptext属性结合使用TabCount检索选项卡控件中选项卡的数目TabPages对选项卡控件进行编辑,类似与其他控件的Items属性52、选项卡控件的事件事件 说明SelectedIndexChanged更改

3、SelectedIndex 属性值时,将触发该事件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

4、记事薄界面9日程安排界面10第二步:运行,观察结果。第三步:修改imageList1的ImageSize属性为16,16;修改ColorDepth为Depth8Bit,重新运行观察结果。11示例二:动态添加TabPage控件以及向其内部动态添加其他控件127.2 ListView控件 ListView是一种加强型的ListBox,该控件可以使用列表的形式显示一组数据,Windows系统中的文件浏览器就是一个ListView控件。137.2 ListView控件 ListView的展现方式非常的丰富,它可以让我们以4种不同的样式来展现一组数据。14ListView控件常用属性1)View属性:表

5、示数据的显示模式,常用的有如下选择:LargeIcons:大图标视图模式,在项的文本旁显示大的图标。SmallIcons:小图标视图模式,在项的文本旁显示小的图标。List:列表视图模式,显示小图标,但项是垂直排列的,只显示单列。Details:详细资料视图模式,是最丰富的选项,它不但允许您查看项,还允许您查看为各项指定的任何子项(5)Tile152)Items属性:列表视图的选项集合。向ListView控件添加项的几种方法:1、方法是在ListView控件的属性窗口中选择Items属性。2、还可以使用ListView控件的Items.Add()方法来为它添加新项,Add()方法的格式如下:A

6、dd(text,imageIndex),text为要添加项所显示的文本。imageIndex为可选参数,指示所对应ImageList中的图标索引3、也可以使用insert方法,和listbox的Items属性类似。163)SelectedIndices属性:列表视图的选中项的下标的集合。4)SelectedItems属性:列表视图的所有选中项。175)Colums属性:为ListView控件添加列标题1、在属性窗口中找到Columns属性,在弹出的集合编辑器中添加和删除列标题,可在编辑器中编辑显示的文本、宽度以及对齐方式。2、使用Columns.Add方法动态添加列标题ListView1.Co

7、lumns.Add(文本,宽度,对齐方式)如:listView1.Columns.Add(列1,50,HorizontalAlignment.Left)注意:列标题只有在把ListView控件的View属性设置为Details,才能显示出来。186)MultiSelect属性:表示是否允许多行选择。7)LargeImageList属性:这个属性包含ImageList,而ImageList包含大图像。这些图像可以在View属性为LargeIcon时使用。8)SmallImageList属性:这个属性包含ImageList,而ImageList包含小图像。这些图像可以在View属性为SmallIc

8、on时使用。1910)FullRowSelect属性:单击某项时,是只选择该项,还是应选该项所在的整行。默认值为false。说明:除非将ListView控件的View属性设置为Details,否则FullRowSelect属性无效。2011)GridLines属性:GridLines属性。指定在包含控件中项及其子项的行和列之间是否显示网格线。默认值为false。说明:除非将ListView控件的View属性设置为Details,否则GridLines属性无效。21 向ListView控件添加项,并且使用ListView的属性View属性来使用4中方式展现其中的项。并支持如下功能。【7-2】常见

9、操作示例:(2)向ListView的Details模式中添加列。(3)向ListView的的各项添加图片22(4)向ListView中的每一项添加子项,并且在ListView的Details模式下显示各个子项。(5)对ListView中的项进行分组:【7-2】常见操作示例:23课堂练习:24运行结果如图所示25(5)对ListView中的项进行分组:常见操作示例:26(6)对ListView中的项进行搜索:常见操作示例:27用于上下或者左右滚动整个窗口或者文档在MicrosoftWord或Excel中,为浏览多页面的文档提供了滚动条滚动条垂直滚动条 水平滚动条q 滚动条的属性和事件如下:带有滚

10、动条的MSWord 文档窗口7.3 滚动条28属性 说明Maximum 用于表示滚动范围的上限值。默认值为 100Minimum 用于表示滚动范围的下限值。默认值为 0Value 该属性表示滚动条控件中代表滚动框的当前位置的数字。默认值为 0LargeChange 表示滚动框的大小,默认值为10事件说明Scroll 移动滚动条上的滚动框时,将触发该事件ValueChanged 更改 Value 属性的值时,将触发该事件。Value 属性的值可由滚动事件更改,也可以通过程序来更改29privatevoidhScrollBar1_ValueChanged(objectsender,EventArg

11、se)Text=string.Format(0:1,hScrollBar1.Value,vScrollBar1.Value);privatevoidvScrollBar1_ValueChanged(objectsender,EventArgse)Text=string.Format(0:1,hScrollBar1.Value,vScrollBar1.Value);例子:307.4 进度条(ProgressBar)用于指示操作的进度、完成的百分比外观是排列在水平条中的一定数目的矩形311、进度条的属性和方法属性 说明Maximum 进度条控件的最大值。默认值为 100Minimum进度条控件的最

12、小值。进度条从最小值开始递增,直至达到最大值。默认值为 0StepPerformStep 方法应据以增加进度条的光标位置的值。默认值为 10Value 进度条控件中光标的当前位置。默认值为 0方法 说明Increment按参数中指定的递增值移动进度条的光标位置PerformStep按 Step 属性中指定的值移动进度条的光标位置32 下面的例子说明了如何使用进度条来显示一个较长时间的计算过程。第一步:在窗体上放两个ProgressBar控件,两个Label控件,两个TextBox控件,一个Button控件,如图:33第二步:添加开始计算按钮的Click响应事件:private void but

13、ton1_Click(object sender,System.EventArgs e)button1.Enabled=false;int outLoop=Int32.Parse(textBox1.Text);int innerLoop=Int32.Parse(textBox2.Text);progressBar1.Maximum=outLoop;progressBar2.Maximum=innerLoop;for(int i=1;i=outLoop;i+)for(int j=1;j=innerLoop;j+)double d=i+j;if(j%100=0)progressBar2.Value

14、=j;progressBar1.Value=i;button1.Enabled=true;第三步:运行,观察结果。347.5 TreeView(树形视图)控件 可以使用TreeView控件显示具有层次结构的数据,比如磁盘目录、文件和数据库结构等。常见的是在Windows操作系统的资源管理器的左窗格中显示文件和文件夹。树视图中的各个节点都可以包含其他节点,用户可以按展开或折叠的方式显示父节点或包含子节点的节点。35nodeslabelEdit 是否可以编辑各节点的标签内容,默认为false361、显示层层节点:treeView1.Nodes.Add(父节点0);treeView1.Nodes0.

15、Nodes.Add(第1个父节点的子节点0);treeView1.Nodes0.Nodes0.Nodes.Add(第1个父节点第1个子节点的孙节点0);treeView1.Nodes0.Nodes0.Nodes.Add(“第1个父节点第1个子节点的孙节点1”);treeView1.Nodes0.Nodes.Add(第1个父节点的子节点1);treeView1.Nodes.Add(“父节点1”);treeView1.Nodes1.Nodes.Add(“第2个父节点的子节点0);依次类推.Nodes属性代码使用:372、提取节点数据:1)明确路径的数据提取:string父节点名字=treeView

16、1.Nodes0.Text;/第一个父节点的文本string子节点名字=treeView1.Nodes0.Nodes0.Text;/第一个父节点的第一个子节点文本string孙节点名字=treeView1.Nodes0.Nodes0.Nodes1.Text;/第一个父节点第一个子节点的第二个孙节点文本依次类推.382)选中节点的提取:string选中的节点=treeView1.SelectedNode.Text;string选中的节点的第一个子节点=treeView1.SelectedNode.Nodes0.Text;string选中的节点的第二个子节点的第三个孙节点=treeView1.Se

17、lectedNode.Nodes1.Nodes2.Text;依次类推.3、删除节点:treeView1.Nodes.Remove(treeView1.SelectedNode);treeView1.Nodes.RemoveAt(index);4、清空节点:treeView1.Nodes.Clear();395、其他属性:treeView1.Nodes0.Nodes0.FirstNode,本节点的子集中第一个节点(非同级)treeView1.Nodes0.Nodes0.LastNode,本节点的子集中最后一个节点(非同级)treeView1.Nodes0.Nodes0.NextNode,同级树节

18、点的下一个节点(同级)treeView1.Nodes0.Nodes1.PrevNode,同级树节点的前一个节点(同级)treeView1.Nodes0.Nodes0.Parent,获取父节点treeView1.Nodes0.Nodes0.FullPath,获取节点完整路径,返回String40另外,通过将树视图的CheckBoxes属性设置为True,可以在节点旁边显示复选框,用户可以通过将节点的Checked属性设置为True或False来选中或清除节点。41常用方法:42常用事件:会触发此事件43 第一步:向设计窗体拖放一个TreeView控件,两个 TextBox控件(name属性分别为

19、textBoxRoot、textBoxChild),四个Button控件(name属性分别为 buttonAddRoot、buttonAddChild、buttonDelete、buttonEdit)如下图所示。【7-3】操作示例4445 第二步:从工具箱中向窗体拖放一个ImageList控件,选择其Image属性,然后添加三幅图像。第三步:设置TreeView控件的属性:ImageList属性:imageList1。Nodes属性:添加初始的根节点和子节点以及节点的图像。46第四步:添加展开某个节点后发出的AfterExpand事件。private void treeView1_AfterE

20、xpand(object sender,System.Windows.Forms.TreeViewEventArgs e)e.Node.ImageIndex=1;e.Node.SelectedImageIndex=1;47第五步:添加折叠某个节点后发出的AfterCollapse事件。private void treeView1_AfterCollapse(object sender,System.Windows.Forms.TreeViewEventArgs e)e.Node.ImageIndex=0;e.Node.SelectedImageIndex=0;48第六步:添加下列事件。priv

21、ate void buttonAddRoot_Click(object sender,System.EventArgs e)/构造节点显示内容、取消选定时显示图像索引号、选定时显示图像索引号TreeNode newNode=new TreeNode(textBoxRoot.Text,2,2);treeView1.Nodes.Add(newNode);49private void buttonAddChild_Click(object sender,System.EventArgs e)TreeNode selectedNode=treeView1.SelectedNode;if(selecte

22、dNode=null)MessageBox.Show(“添加子节点前应选中一个节点。,提示);return;TreeNode newNode=new TreeNode(textBoxChild.Text,2,2);selectedNode.Nodes.Add(newNode);selectedNode.SelectedImageIndex=1;selectedNode.Expand();/展开,将新节点显示出来。50private void buttonDelete_Click(object sender,System.EventArgs e)TreeNode selectedNode=tre

23、eView1.SelectedNode;if(selectedNode=null)MessageBox.Show(“删除节点前应选中一个节点。,提示);return;/获得选中节点的父节点 TreeNode parentNode=selectedNode.Parent;51if(parentNode=null)/说明选中节点为根结点 treeView1.Nodes.Remove(selectedNode);else parentNode.Nodes.Remove(selectedNode);if(parentNode.Nodes.Count=0)/如果移去节点之后,父节点无子节点需改变图标 p

24、arentNode.ImageIndex=2;parentNode.SelectedImageIndex=2;52 private void buttonEdit_Click(object sender,EventArgs e)treeView1.SelectedNode.BeginEdit();注意:在使用这个属性的时候,必须设置treeView1.LabelEdit=true,否则会提示错误。第七步:运行,测试结果。53虽然VisualStudio.NET附带了大量的控件,但仍不能满足各个应用程序的特殊需要。比如说,VisualStudio.NET自带的控件不能以我们希望的方式进行使用,而

25、我们却希望把控件的功能和界面一起封装。此时,我们就需要自己开发一个新的控件。为此,VisualStudio.NET提供了一个工程类型WindowsControlLibrary,使用它可以创建自己的控件。自定义控件基本思想是允许开发人员生成新的功能,把现有的控件聚集到一个公共控件上,使之可以在应用程序中重复使用。7.6用户自定义控件54VS2005winform中编辑自定义控件,步骤如下:1.点击文件新建项目选择Windows控件库2.编辑用户所需的控件3.点击生成生成项目名称,完成这一步后会在bin或debug目录下看到项目名称.dll文件,这个便是你的控件库了4.在需要使用该控件的程序中点击

26、工具选择工具项浏览选择刚才的那个.dll文件,这样你便会在你的工具箱中找到你的那个控件55定制控件示例-从UserControl类继承本示例将Label和Timer两个控件绑定到一起,实现通过标签显示系统当前时间,每秒刷新一次。(1)在VisualStudio.NET中创建一个新的C#工程,选择Windows控件库,把新工程命名为ClockLib,如下图所示。5657(2)单击设计界面,打开控件的属性。找到UserControl1.cs把名称改为Clock.cs。(3)在用户控件中加入标签和计时器两个控件。修改timer1控件的Enabled属性为true,interval属性设置为1000。

27、标签的name属性为lblDisplay。58(4)选中timer1控件,切换到“事件窗口”,双击“Tick”,为time1控件添加一个timer1_Tick事件。将代码修改如下privatevoidtimer1_Tick(objectsender,EventArgse)/在标签中显示当前的时间lblDisplay.Text=System.DateTime.Now.ToLongTimeString();59(5)从“文件”菜单中,选择“全部保存”命令来保存项目。(6)生成控件。在“生成”菜单中单击“生成ClockLib”命令,输出窗体提示生成是否成功。(7)创建测试项目。由于定制的控件不是独立

28、的项目,它们必须寄宿在容器中。因此,必须提供一个运行该控件的测试项目,来进行测试控件。60右键单击解决方案,选择“添加/新建项目”命令,而后在弹出的窗口中选择“VisualC#项目”节点,然后单击“Windows应用程序”,在“名称”框中输入testClockLib,单击“确定”按钮,如下图所示。61(8)将新控件添加到工具箱。选择菜单工具选择工具项,以打开如下图所示的“选择工具箱项”对话框。然后选择“.NETFramework组件”选项卡并单击“浏览”按钮。找到“ClockLibbindebug”目录并选择“ClockLib.dll”文件,使Clock出现在“选择工具箱项”对话框的组建列表中。62(9)将Clock控件添加到testClockLib的窗体设计器上,并调整到适当的大小。窗体中显示一个名为“clock1”的定制控件。(10)在解决方案资源管理器中,右键单击testClockLib然后从快捷菜单中选择“设为启动项目”。(11)按F5键运行该项目,出现Form1。效果图如下页图所示:63

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com