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

上传人:牧羊曲112 文档编号:6379931 上传时间:2023-10-22 格式:PPT 页数:63 大小:1.43MB
返回 下载 相关 举报
高级控件及自定义控件的使用.ppt_第1页
第1页 / 共63页
高级控件及自定义控件的使用.ppt_第2页
第2页 / 共63页
高级控件及自定义控件的使用.ppt_第3页
第3页 / 共63页
高级控件及自定义控件的使用.ppt_第4页
第4页 / 共63页
高级控件及自定义控件的使用.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《高级控件及自定义控件的使用.ppt》由会员分享,可在线阅读,更多相关《高级控件及自定义控件的使用.ppt(63页珍藏版)》请在三一办公上搜索。

1、1,第二章 高级控件及自定义控件的使用,Visual C#程序设计,2,TabControl控件 ListView控件 hScrollBar和vScrollBar控件 ProgressBar控件 TreeView控件 自定义控件,3,2.1 选项卡控件(TabControl),在 Windows 应用程序中,选项卡用于将相关的控件集中在一起,放在一个页面中选项卡控件用于显示多个选项卡,其中每个选项卡均可包含图片和其他控件选项卡相当于另一个窗体,可以容纳其他控件,选项卡控件,4,1、选项卡控件的属性,5,2、选项卡控件的事件,6,第一步:(1)创建一个TestTabControl的Windows

2、应用程序,向设计窗体上拖放一个TabControl控件,调整大小。(2)向窗体上拖放一个ImageList控件,添加三个图标,并修改ImageSize属性为32,32;修改ColorDepth为Depth32Bit。(3)设置TabControl的ImageList属性为imageList1。(4)设置TabControl的TabPages属性,添加三个TabPage,点击确定,再分别在三个TabPage上放一些控件便于区分。,【7-1】操作示例,7,设计界面如图所示:,通讯录界面,8,记事薄界面,9,日程安排界面,10,第二步:运行,观察结果。第三步:修改imageList1的ImageSi

3、ze属性为16,16;修改ColorDepth为Depth8Bit,重新运行观察结果。,11,示例二:动态添加TabPage控件以及向其内部动态添加其他控件,12,7.2 ListView控件,ListView是一种加强型的ListBox,该控件可以使用列表的形式显示一组数据,Windows系统中的文件浏览器就是一个ListView控件。,13,7.2 ListView控件,ListView的展现方式非常的丰富,它可以让我们以4种不同的样式来展现一组数据。,14,ListView控件常用属性 1)View属性:表示数据的显示模式,常用的有如下选择:Large Icons:大图标视图模式,在项的

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

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

6、listView1.Columns.Add(列 1,50,HorizontalAlignment.Left),注意:列标题只有在把ListView 控件的View 属性设置为 Details,才能显示出来。,18,6)MultiSelect属性:表示是否允许多行选择。7)LargeImageList属性:这个属性包含ImageList,而ImageList包含大图像。这些图像可以在View属性为LargeIcon时使用。8)SmallImageList属性:这个属性包含ImageList,而ImageList包含小图像。这些图像可以在View属性为SmallIcon时使用。,19,10)Ful

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

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

9、滚动条的属性和事件如下:,带有滚动条的 MS Word 文档窗口,7.3 滚动条,28,29,private void hScrollBar1_ValueChanged(object sender,EventArgs e)Text=string.Format(0:1,hScrollBar1.Value,vScrollBar1.Value);private void vScrollBar1_ValueChanged(object sender,EventArgs e)Text=string.Format(0:1,hScrollBar1.Value,vScrollBar1.Value);,例子:,

10、30,7.4 进度条(ProgressBar),用于指示操作的进度、完成的百分比外观是排列在水平条中的一定数目的矩形,31,1、进度条的属性和方法,32,下面的例子说明了如何使用进度条来显示一个较长时间的计算过程。第一步:在窗体上放两个ProgressBar控件,两个Label控件,两个TextBox控件,一个Button控件,如图:,33,第二步:添加开始计算按钮的Click响应事件:private void button1_Click(object sender,System.EventArgs e)button1.Enabled=false;int outLoop=Int32.Parse

11、(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=j;progressBar1.Value=i;button1.Enabled=true;第三步:运行,观察结果。,34,7.5 TreeView(树形视图)控件,可以使用Tre

12、eView控件显示具有层次结构的数据,比如磁盘目录、文件和数据库结构等。常见的是在Windows操作系统的资源管理器的左窗格中显示文件和文件夹。树视图中的各个节点都可以包含其他节点,用户可以按展开或折叠的方式显示父节点或包含子节点的节点。,35,36,1、显示层层节点:treeView1.Nodes.Add(父节点0);treeView1.Nodes0.Nodes.Add(第1个父节点的子节点0);treeView1.Nodes0.Nodes0.Nodes.Add(第1个父节点第1个子节点的孙节点0);treeView1.Nodes0.Nodes0.Nodes.Add(“第1个父节点第1个子节

13、点的孙节点1”);treeView1.Nodes0.Nodes.Add(第1个父节点的子节点1);treeView1.Nodes.Add(“父节点1”);treeView1.Nodes1.Nodes.Add(“第2个父节点的子节点0);依次类推.,Nodes属性代码使用:,37,2、提取节点数据:1)明确路径的数据提取:string 父节点名字=treeView1.Nodes0.Text;/第一个父节点 的文本 string 子节点名字=treeView1.Nodes0.Nodes0.Text;/第一个父节点的第一个子节点文本 string 孙节点名字=treeView1.Nodes0.Nod

14、es0.Nodes1.Text;/第一个父节点第一个子节点的 第二个孙节点文本依次类推.,38,2)选中节点的提取:string 选中的节点=treeView1.SelectedNode.Text;string 选中的节点的第一个子节点=treeView1.SelectedNode.Nodes0.Text;string 选中的节点的第二个子节点的第三个孙节点=treeView1.SelectedNode.Nodes1.Nodes2.Text;依次类推.,3、删除节点:treeView1.Nodes.Remove(treeView1.SelectedNode);treeView1.Nodes.R

15、emoveAt(index);,4、清空节点:treeView1.Nodes.Clear();,39,5、其他属性:treeView1.Nodes0.Nodes0.FirstNode,本节点的子集中第一个节点(非同级)treeView1.Nodes0.Nodes0.LastNode,本节点的子集中最后一个节点(非同级)treeView1.Nodes0.Nodes0.NextNode,同级树节点的下一个节点(同级)treeView1.Nodes0.Nodes1.PrevNode,同级树节点的前一个节点(同级)treeView1.Nodes0.Nodes0.Parent,获取父节点treeView

16、1.Nodes0.Nodes0.FullPath,获取节点完整路径,返回String,40,另外,通过将树视图的CheckBoxes属性设置为True,可以在节点旁边显示复选框,用户可以通过将节点的Checked属性设置为True或False来选中或清除节点。,41,常用方法:,42,常用事件:,会触发此事件,43,第一步:向设计窗体拖放一个TreeView控件,两个 TextBox控件(name属性分别为textBoxRoot、textBoxChild),四个Button控件(name属性分别为 buttonAddRoot、buttonAddChild、buttonDelete、button

17、Edit)如下图所示。,【7-3】操作示例,44,45,第二步:从工具箱中向窗体拖放一个ImageList控件,选择其Image属性,然后添加三幅图像。第三步:设置TreeView控件的属性:ImageList属性:imageList1。Nodes属性:添加初始的根节点和子节点以及节点的图像。,46,第四步:添加展开某个节点后发出的AfterExpand事件。private void treeView1_AfterExpand(object sender,System.Windows.Forms.TreeViewEventArgs e)e.Node.ImageIndex=1;e.Node.Se

18、lectedImageIndex=1;,47,第五步:添加折叠某个节点后发出的AfterCollapse事件。private void treeView1_AfterCollapse(object sender,System.Windows.Forms.TreeViewEventArgs e)e.Node.ImageIndex=0;e.Node.SelectedImageIndex=0;,48,第六步:添加下列事件。private void buttonAddRoot_Click(object sender,System.EventArgs e)/构造节点显示内容、取消选定时显示图像索引号、选

19、定时显示图像索引号TreeNode newNode=new TreeNode(textBoxRoot.Text,2,2);treeView1.Nodes.Add(newNode);,49,private void buttonAddChild_Click(object sender,System.EventArgs e)TreeNode selectedNode=treeView1.SelectedNode;if(selectedNode=null)MessageBox.Show(“添加子节点前应选中一个节点。,提示);return;TreeNode newNode=new TreeNode(

20、textBoxChild.Text,2,2);selectedNode.Nodes.Add(newNode);selectedNode.SelectedImageIndex=1;selectedNode.Expand();/展开,将新节点显示出来。,50,private void buttonDelete_Click(object sender,System.EventArgs e)TreeNode selectedNode=treeView1.SelectedNode;if(selectedNode=null)MessageBox.Show(“删除节点前应选中一个节点。,提示);return

21、;/获得选中节点的父节点 TreeNode parentNode=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,private void buttonEdi

22、t_Click(object sender,EventArgs e)treeView1.SelectedNode.BeginEdit();注意:在使用这个属性的时候,必须设置treeView1.LabelEdit=true,否则会提示错误。第七步:运行,测试结果。,53,虽然 Visual Studio.NET附带了大量的控件,但仍不能满足各个应用程序的特殊需要。比如说,Visual Studio.NET自带的控件不能以我们希望的方式进行使用,而我们却希望把控件的功能和界面一起封装。此时,我们就需要自己开发一个新的控件。为此,Visual Studio.NET提供了一个工程类型Windows

23、Control Library,使用它可以创建自己的控件。自定义控件基本思想是允许开发人员生成新的功能,把现有的控件聚集到一个公共控件上,使之可以在应用程序中重复使用。,7.6 用户自定义控件,54,VS 2005 winform 中编辑自定义控件,步骤如下:1.点击文件新建项目选择Windows控件库2.编辑用户所需的控件3.点击生成生成项目名称,完成这一步后会在bin或debug目录下看到项目名称.dll文件,这个便是你的控件库了4.在需要使用该控件的程序中点击工具选择工具项浏览选择刚才的那个.dll文件,这样你便会在你的工具箱中找到你的那个控件,55,定制控件示例-从UserContro

24、l类继承,本示例将Label和Timer两个控件绑定到一起,实现通过标签显示系统当前时间,每秒刷新一次。,(1)在Visual Studio.NET 中创建一个新的C#工程,选择Windows 控件库,把新工程命名为ClockLib,如下图所示。,56,57,(2)单击设计界面,打开控件的属性。找到UserControl1.cs把名称改为Clock.cs。,(3)在用户控件中加入标签和计时器两个控件。修改timer1控件的Enabled属性为true,interval属性设置为1000。标签的name 属性为lblDisplay。,58,(4)选中timer1控件,切换到“事件窗口”,双击“T

25、ick”,为time1控件添加一个timer1_Tick事件。将代码修改如下private void timer1_Tick(object sender,EventArgs e)/在标签中显示当前的时间lblDisplay.Text=System.DateTime.Now.ToLongTimeString();,59,(5)从“文件”菜单中,选择“全部保存”命令来保存项目。(6)生成控件。在“生成”菜单中单击“生成ClockLib”命令,输出窗体提示生成是否成功。(7)创建测试项目。由于定制的控件不是独立的项目,它们必须寄宿在容器中。因此,必须提供一个运行该控件的测试项目,来进行测试控件。,6

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号