《C控件使用》PPT课件.ppt_第1页
《C控件使用》PPT课件.ppt_第2页
《C控件使用》PPT课件.ppt_第3页
《C控件使用》PPT课件.ppt_第4页
《C控件使用》PPT课件.ppt_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

控件的使用 Zhanghz 2006.12.1 本章要点 n学习窗体控件的编程。首先介绍如何使用窗体 设计器向窗体中添加控件以及如何在窗体设计 器中调整控件位置和大小等属性。然后依次介 绍各个常用的控件,包括控件所特有的属性和 事件。 n纲要 q添加控件 q调整控件 q控件的分类介绍 为窗体添加控件 n在窗体设计器中打开要添加控件的窗体,然后打开“ 工具箱”面板,如图。 q在“解决方案资源管理器”中双击相应的窗体节点(比如一个 Form1.cs文件)就可以在窗体设计器中显示该窗体。 n3种方法将“工具箱”中的控件添加到窗体中 q双击“工具箱”中要使用的控件,此时将会在窗体的默认位置 (客户区的左上角)添加默认大小的控件。 q在“工具箱”中选中一个控件,鼠标指针变成与该控件对应的 形状;把鼠标指针移到窗体中要摆放控件的位置,按下鼠标 左键并拖动鼠标画出控件大小后,松开鼠标即可在窗体的指 定位置绘制指定大小的控件。 q直接把控件从“工具箱”拖放到窗体中,使用这种方式可以在 指定的位置添加默认大小的控件。 n可以直接使用代码向窗体添加控件。 q把一个按钮控件btnNew添加到窗体中: Button btnNew=new Button(); n两种类型的控件 q具有用户界面的控件:会出现在窗体中,并且在运行时可见 。 q没有用户界面的控件:主要用于在后台提供一些功能,在运 行时不可见。当在窗体设计器中把它们添加到窗体中时,这 些控件将出现在窗体设计器下面的窗格中。 q如图 n在控件的Text属性中使用与号 qbtnNew置于底层:btnNew.SendToBack(); 2)在窗体中定位控件 n两种定位方法 q在窗体设计器中通过拖动控件进行定位 q通过指定控件的Location属性来定位控件 n控件的位置相对于包含它的容器控件,单位为像素。 在选中控件之后可以使用箭头键微调,更精确地定位 控件。 n在属性窗口中修改控件的Location属性改变控件位置 :直接输入控件位置值,X和Y值以逗号隔开,或是 展开Location属性节点,分别输入X坐标值和Y坐标值 。 n在代码中设置控件位置 qbtnNew.Location = new System.Drawing.Point(100,100); qbtnNew.Left = 100; btnNew.Top += 200; 3)改变控件大小 n在窗体设计器中改变控件大小的方法 q使用鼠标直接拖动控件大小 q在属性窗口中改变控件的Size属性值 q在窗体中选中控件,然后使用Shift +箭头键来微调控件大小 n在代码中通过Size属性设置控件大小 qbtnNew.Size=new System.Drawing.Size(100,100); n可以使用Bounds属性同时设置控件的位置和大小 qbtnNew.Bounds=new System.Drawing.Rectangle(10,10,100,100); 4)固定控件 n使用Anchor属性使控件的位置相对于窗体某一边固定,改变窗体大小 时,控件的位置将会随之改变而保持这个相对距离不变。 n使用属性窗口改变Anchor属性时,单击控件周围的上下左右的某个方 框使之变成深灰色,就表示控件相对于窗体这条边的距离固定 nSystem.Windows.Forms命名空间中包含了一个枚举类型 AnchorStyles,其中定义了Anchor属性可以组合的16种不同属性值。 可以在代码中设置Anchor属性。 q控件到窗体4条边的距离都保持不变 btnNew.Anchor=AnchorStyles.All; q控件到窗体底边和左边的距离保持不变 btnNew.Anchor=AnchorStyles.Bottom | AnchorStyles.Left; q控件没有固定到任何一边 btnNew.Anchor=AnchorStyles.None; n控件还可以停靠在窗体的某一边上,通过控件的Dock 属性进行设置。 n使用属性窗口设置Dock属性时会显示一个设置窗口, 单击该窗口中的按钮可以设置相应的Dock属性值。这 些值在枚举类型System.Windows.Forms.DockStyle 中定义。 n通过代码设置按钮控件btnNew停靠在窗体的顶边上 (这时btnNew的顶边和底边自动扩展到窗体顶边大 小,并且改变窗体大小时,btnNew的大小会随之改 变) qbtnNew.Dock= System.Windows.Forms.DockStyle.Top; 5)设置控件的Tab键顺序 n控件的Tab键顺序决定了用户使用Tab键切换时的顺 序。默认情况下,控件的Tab键顺序就是控件添加到 窗体的中的顺序。 n选择“视图|Tab键顺序”命令把窗体设计器切换到Tab 键顺序选择模式,再次选择该命令可以回到设计模式 。 q在Tab顺序选择模式中,可以单击各个控件把它们的Tab键 顺序设置成单击控件的顺序 n也可以通过属性窗口设置各个控件的TabIndex属性来 改变Tab键顺序 n位于分组框中的控件的TabIndex也按照这个规则来修 改。 控件的分类介绍 n按钮类控件 n文本类控件 n逻辑分组控件 n滚动类控件 n工具栏和状态栏 n视图类控件 n其他控件 n控件种类繁多,在学习时注意对比和触类旁通 。 按钮类控件 n都从类ButtonBase派生,这个类提供了按钮类 控件通用的基本操作。 q按钮控件 q单选按钮控件 q复选框控件 按钮 n使用Button类进行封装,包含有属性、方法和简化按钮互 用任务的事件。可以在按钮中显示文字或图像,还可以调 整按钮控件的显示方式。 n使用Button类的公开属性控制按钮外观 qFlatStyle。定义如何绘制控件的边缘,时一个枚举类型,可选值有 :Flat(平面的)、PopUp(由平面到凸起)、Standard(三维边 界)、System(根据操作系统决定) qBackColor。指定控件的背景色,默认为KnownColor.Control(这 是操作系统为控件定义的默认颜色)。 qForeColor。指定控件的文字颜色,默认为 KnownColor.ControlText。 qText。控制显示在控件中的文字。 qTextAlign,指定按钮文字的对齐方式;ImageAlign,指定图像的 对齐方式。 q注意 n可以在属性窗口设置属性,可以在代码中对属性进行设置。例如修改按钮背景 色,可以使用代码btnNew.BackColor=Color.Red; n“ n一般使用默认的背景和前景控件颜色。 n用Button类的公开属性控制按钮操作 q这里讨论的属性对各类控件普遍使用。这些属性都继承于Control 基类。 qEnabled。激活(true)或禁用(false)按钮。禁用时无法选中按 钮,且按钮文字将变为系统禁用文本的颜色。 qVisible。控件是否可见。有时隐藏控件比简单禁用控件更合适,例 如控件只用于特殊情况,就可以在一般情况下将它隐藏。这还能降 低窗体的杂乱性。 nbtnNew.Visible=false; n也可以使用方法隐藏控件:btnNew.Hide();显示控件:btnNew.Show(); n按钮事件 qClick事件。单击按钮或是在按钮具有焦点时按下空格键都将触发 Click事件。在设计器中可以通过双击按钮来进入代码编辑器添加 Click事件的处理代码。 n把按钮与DialogResult值联系起来 q窗体DialogResult属性值可以为OK、Yes、No、Abort、Ignore、 Retry、Cancel、None等。当窗体作为对话框使用时,在窗体关闭 前这个值应该与窗体联系起来,并且在调用ShowDialog方法时还 应该将它作为结果返回。 q可以使用按钮控件的DialogResult属性来为窗体设置DialogResult 属性。当该按钮用于关闭窗体时,DialogResult的值就将通过窗体 传递。 ncloseButton.DialogResult = DialogResult.OK; 单选按钮 n使用RadioButton类封装,通常用来执行多选 一的操作。单选按钮通常分组使用,在一个组 中,只能有一个按钮处于选中状态。 n单选按钮属性 q除了Button中讨论的一些属性之外,单选按钮还比 较常用的属性还有: nChecked属性,用来确定单选按钮是否被选择 nAppearance属性,用来确定单选按钮的显示形式,有两 个可能值:Appearance.Button(显示为按钮), Appearance.Normal(正常显示) n单选按钮的常用事件 qCheckedChanged事件。当单选按钮的Checked属 性发生变化时,会触发这个事件,可以使用这个事 件根据单选按钮的状态变化进行适当的操作。在设 计器中双击单选按钮将进入代码编辑器中这个事件 的定义部分。 qClick事件。在选中单选按钮的时候触发,要处理这 一事件,必须提供一个事件处理器,将在后面的章 节对这一技术进行讨论 复选框 n用CheckBox进行封装。复选框与单选按钮极为相似 ,只是复选框允许零个或多个选择。 n复选框属性 q也具有RadioButton中介绍的一些属性。 qChecked属性,获取或设置复选框是否选中。但与单选按钮 不同之处是,复选框可以支持3种状态(增加一种不确定状 态)。这需要用到ThreeState属性,默认值为false,设为 true将激活第三种状态。 qCheckState属性,用来判断或设置复选框状态,有三种可能 :Checked,Unchecked,Indeterminate(未被选中也未被 清除,且显示禁用复选标记)。复选框处于选中或不确定状 态时,Checked属性都为true。 q当复选框的Appearance属性设置成Button时,不确定状态是 平面按钮,选中状态是按下的按钮,未选定状态是凸起按钮 。 n复选框事件 qCheckedChanged事件,改变复选框Checked属性 时触发。在设计器中双击相应的复选框将进入代码 编辑器中这一事件的定义部分。 qCheckStateChanged事件,改变复选框 CheckedState属性时触发。在属性窗口中选择这一 事件双击进入其代码编辑。 n示例程序 文本类控件 n文本类控件通常用来显示或输入信息,是构成 用户界面的最基本控件 n文本框控件 n标签控件 n列表框控件 n组合框控件 文本框控件 n用TextBox类进行封装,是按钮控件外最常使用的控 件,常用于接收文本输入。TextBox类派生于 TextBoxBase类。 n默认情况下,文本框控件只接受单行文本,此时只能 水平改变控件大小而不能垂直改变。通过设置 TextBox的Multiline属性为true,可以使用多行文本框 。 n文本框属性 qText属性,获取用户输入到文本框中的文本。 n例:string newItem newTextBox.Text; qTextLength属性,获取文本框控件中文本的长度 文本框属性(1) qLines属性,对于多行文本框,除了可以使用Text属性获取文 本外,还可以使用Lines属性,它返回一个字符串的数组,每 个数组元素对应一行文本。 n注意,在Lines数组中的元素没有必要与文本框控件的物理行相 对应。如果允许文本换行,那么无论文本占了多少物理行,在 Lines数组中都只是一个元素。 n可以在属性窗口中使用Lines属性为多行文本框提供初始文本。 在属性窗口中选择Lines属性,将显示一个说明为“”的小按钮 。单击它就会显示“字符串采集编辑器”对话框,在其中可以输 入控件文本。 qReadOnly属性,当它设置为true时,只能浏览而不能修改文 本框中显示的内容。 qMaxLength属性,设置文本框能输入的最大字符数。 文本框属性(2) qWordWrap属性,选择每行的文本是可以扩展超出控件边缘 (false)或是在控件边界处自动换行(true),默认值为 true。 qScrollBars属性,指定是否使用以及使用怎样的滚动条。属 性值必须是枚举类型ScrollBars的值:None、Horizontal( 水平)、Vertical(垂直)、Both。 n如果文本框的WordWrap属性设置为true,则水平滚动条不显示 。 qBorderStyle属性,管理文本框控件的外观。属性值必须是枚 举类型BorderStyle的值:None、FixedSingle、Fixed3D( 默认值)。 文本框属性(3) qSelectedText、SelectionStart、SelectionLength属性,用来 获取或设置当前在文本框中选择的文字,看个例子: ntextBox1.Text = “这是一个文本框控件”; textBox1.SelectionStart = 4; textBox1.SelectionLength = 3; string selection = textBox1.SelectedText; /selection的内容为“ 文本框” qPasswordChar属性,用来指定文本框的屏蔽字符。对用于 输入密码或是其他敏感信息的文本框,使用这一属性来设置 代替的掩饰字符 n例如,textBox1.PasswordChar= * ; qAcceptsReturn、AcceptsTab属性 文本框属性(4) n通常情况下,不能在文本框中使用Enter键换行或是Tab键输入 制表符,这两个键的默认行为是触发窗体的AcceptButton属性 的Click事件和切换输入焦点。 nAcceptsReturn属性,设置为true则在指定的控件中按下Enter 键将会在其中新建一行文本;如果为false,则要按下Ctrl + Enter才能实现上述功能,如果只按下Enter将是激活窗体的默 认按钮。 nAcceptsTab属性,设置为true则在指定的控件中按下Tab键时 会在其中输入一个制表符;如果为false,则要使用Ctrl + Tab组 合键来实现上述功能,单独按下Tab键只是切换焦点。 n如果文本框不支持多行输入,则这两个属性无效。 n文本框的方法 qAppendText:向文本框中附加文字 qClear:清除文本框中的所有文字 qClearUndo:清除有关撤销操作的信息 qCopy:把文本框中的当前选择文字复制到剪贴板 qCut:把文本框中的当前选择文字移动到剪贴板 qPaste:使用剪贴板中的内容替换文本框中当前选择的内容 qSelect:在文本框中选择指定范围的文字 qSelectAll:选择文本框中的所有内容 qUndo:撤销文本框中的最后一次修改操作 n文本框的事件 qTextChanged事件,当文本框内容发生改变时将触发这个事件。若 另一个控件要根据当前文本框的内容来更新时,这个事件很有用。 看个例子。 nPublic TextBoxForm() textBox1.TextChanged += newEventHandle (text_TextChanged); private void textBox_TextChanged(object sender, System.EventArgs e) label1.Text = “Contents:” + textBox1.Text; 这里,一旦textBox1的内容被更新,label1的值也会被更新。 q注意,在TextChanged事件的处理方法或是OnTextChanged 方法中不要试图修改本文本框的内容,否则将循环触发 TextChanged事件,造成死循环。 标签控件 n使用Label类进行封装,通常用于显示静态文本,比 如为其他控件显示描述性信息或根据应用程序的状态 显示相应的提示信息。 n标签控件具有与其他控件相同的许多属性,但是它通 常都作为静态控件使用,在程序中一般很少直接对其 进行编程,主要有用到的属性有 qText属性,设置标签中显示的说明文字 qSize属性,设置标签大小 qAutoSize属性,指定标签中的说明文字是否可以动态变化。 设置为true时将忽略Size属性的值。 qBorderStyle属性,设置标签边框,取值与文本框一样。 n窗体的标签控件有一个不寻常的地方它从不接收 输入焦点。它会将焦点按Tab键的控制次序传递给下 一个控件。 q跟文本框或其他控件相关的标签控件经常被直接放置在相关 控件的前面,并提供在表示快捷键的字符前面附加 /8为起始位置,4为长度 linkLabel1.LinkArea = range; 或linkLabel1.LinkArea = new System.Windows.Forms.LinkArea(8,4); qLinkBehavior属性,指定链接的外观。其值必须为枚举类型 LinkBehavior的值: nAlwaysUnderline:可点击部分总有下划线 nHoverUnderline:可点击部分在鼠标指针停留到控件上时显示 下划线 nNeverUnderline:没有下划线 nSystemDefault:服从系统默认设置(默认值) qLinks属性,保存链接标签中的多个超链接。例如下面代码: nlinkLabel1.Text = “请访问0/zhanghz站点或My Page获取信息”; linkLabel1.Links.Add(3,28); linkLebel1.Links.Add(34, 7, “0”); n链接标签事件 q最常用的事件是LinkClicked事件,在点击链接标签中超链接时就 触发这一事件。要打开相应这个事件的网页,使用来自 System.Diagnostics命名空间的Process.Start()方法。 nPrivate void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) Process.Start( “” ); 这里Process.Start方法将打开浏览器浏览指定URL。 q在链接标签对象中并没有内建的功能用于了解一个 链接是否被访问过。因为对控件的浏览操作实际上 是由LinkClicked事件处理器实现的,所以应该自行 编写代码来指定链接是否被访问。 n通过在LinkClicked事件处理器中修改LinkVisited属性为 true,这就将根据链接的被访问状态来显示不同颜色。 n如果不想为访问过的链接标签提供不同的颜色显示,只需 要取消对LinkVisited属性的设置即可。 列表框控件 n用ListBox类封装,通常用于显示供选择的选项。 n列表框属性 qItems属性,保存列表框中显示的项,通过这个属性访问项或对这 些项进行操作。 qMultiColumn属性,设置列表框是否可以多列显示(默认情况下为 一列显示) qColumnWidth属性,指定每列的宽度。 qSelectionMode属性,指定选择列表框中项的方式,默认情况下列 表框一次只能选择一项。属性值必须为枚举类型SelectionMode中 定义的值: nMultiExtended:允许一次选择多项并使用Shift和Ctrl键来帮助选择。 nMultiSimple:允许一次选择多项,但只能通过单击来选择。 nNone:不能在列表框中选择。 nOne:一次只选择一项(默认)。 q获取所选项的索引的属性 nSelectedIndex属性,在列表框只允许选择一项时用来或许当前 所选择项的索引。没有选中的项时,属性返回一个-1。 nSelectedIndices属性,在列表框允许选择多项时用来获取当前 所有选定项的索引集,这是一个SelectedIndexCollection类实 例。 q获取所选项的索引的引用 nSelectedItem属性,在列表框只允许选择一项时用来获取当前 所选择项。 nSelectedItems属性,在列表框允许选择多项时用来获取当前选 择的多个项的集合,这是一个SelectedObjectCollection类实例 。 qSorted属性,指定列表框是否可以对它包含的项自动排序。 qTopIndex属性,设置或返回列表框中顶端的可见项。 n列表框的方法 q防止在更新列表框时重新绘制的方法:BeginUpdate和 EndUpdate。将修改操作放在这两个方法之间,在所有修改 完成后来刷新列表框。 nlistBox1.BeginUpdate(); foreach(string s in mString) listBox1.Items.Add(s); listBox1.EndUpdate(); qSetSelected方法,用来进行选定或取消选定,它的参数为项 目索引和表示选择状态的Boolean值。 nlistBox1.SetSelected(0, true); q对Items操作的方法 nAdd方法向列表框底部添加项。 listBox1.Items.Add(“A”); nInsert方法向指定位置添加项。 qlistBox1.Insert(0, newItem);/索引不能小于0,不能大于当前项 目数 q在Sorted属性为true时,Insert方法插入的项不能被正确排序。 nAddRange方法添加多个项。 listBox1.Items.AddRange(new string “A”,”B”); 或是listBox1.Items.AddRange(listBox2.Items); nClear方法删除所有项目。listBox1.Items.Clear(); nRemoveAt方法删除指定项 listBox1.Items.RemoveAt(index);/参数为索引 或是listBox1.Items.RemoveAt(object); /参数为对象,将 删除集合中符合参数对象的第一个对象 n看两个删除的代码 qListBox.SelectedIndexCollection indices = listBox1.SelectedIndics; int selected = indices.Count; / (1)不能正确删除,(2)使用倒序删除 (1) if(indices.Count0) foreach( int index in indices) listBox1.Items.RemoveAt(index); (2) if(indices.Count0) for(int n=selected -1;n=0;n-) int index = indicesn; listBox1.Items.RemoveAt(index); n列表框事件 qSelectedIndexChanged事件和 SelectedValueChanged事件。 n在列表框中的选择或取消项目时触发这两个事件。 n一般使用这些事件来触发列表框的再次测试,确定有哪些 项在当前被选定。 qDoubleClick事件,对列表框的项双击时触发这个事 件。一般用这个事件来显示一个关于该项信息的提 示窗体。 组合框控件 n使用ComboBox类进行封装,由一个文本框和 一个下拉列表组成,可以在文本框中直接输入 也可以从下拉列表中选择选项。 n组合框常用于这样的情况便于从控件列表 框部分的多个选项中选择一个,但不需要占用 列表框所使用的空间。对组合框的行为风格可 以控制,如列表框是否显示或文本框是否可以 编辑。 n组合框同时兼有列表框和文本框的功能,能使 用这两类控件具有的大部分操作。 n组合框属性 qItems、SelectedIndex、SelectedItem等属性,与列表框中 所讲述的相同。 n与列表框不同的是,组合框中的列表不支持多项选择。 qText、MaxLength等属性,与文本框中所讲述的相同 qDropDownStyle属性,指定组合框的显示风格。有三个可选 值,在枚举类型ComboBoxStyle中定义。 nDropDown:默认值,可以在文本框中进行编辑并且列表框部 分一般隐藏,单击下拉按钮后显示。 nDropDownList:只能单击下拉按钮显示下拉列表框来进行选择 ,不能在文本框中编辑。 nSimple:列表框总是可见,文本框可以编辑。 qMaxDropDownItems属性,设置下拉列表框中最多能显示的 项的数目。 qDropDownWidth属性,指定组合框下拉部分的宽度的像素数 。 qDroppedDown属性,指定是否显示下拉列表。 qHeight属性,指定简单的组合框的高度。 n组合框方法 qBeginUpdate和EndUpdate方法 qSelect和SelectAll方法,用来对文本框中的文字进行选择。 ncomboBox1.Select(1,5);/1表示起始位置,5表示长度 comboBox1.SelectAll();/选中文本框中的所有字符 n组合框事件 q大部分列表框和文本框事件都能在组合框中使用 nSelectedIndexChanged事件,组合框中选择发生变化时触发这个事件 。 nTextChanged事件,文本框中文字改变时触发这个事件。 qDropDown事件,显示下拉列表时触发这个事件。可以使用 这个事件对下拉列表框中的内容进行处理,如添加删除项等 等。 qSelectionChangeCommitted事件,将更改委托给控件列表 框中的一个项目时触发。看个示例。 n/下面代码确定用户在何时在组合框中选定一个项目 private void comboBox1_SelectionChangeCommitted(object sender, System.EventArgs e) string message = string.Format(“The new selection is 0”, comboBox1.SelectedItem.ToString(); MessageBox.Show(message); n示例程序 逻辑分组控件 n这类控件通常用于将窗体中的控件进行逻辑上 的分组,以使用户界面更具有条理性。其中一 些控件是类似与窗体的容器,比如面板控件。 n分割条控件 n分组框控件 n面板控件 n选项卡控件 分割条控件 n使用Splitter类封装,主要用于在运行时调整停靠控件 的大小,通过它可以实现分割窗体的功能 n使用分割条控件,首先把一个控件停靠在容器控件的 某一边上,然后把分割条控件停靠在相同的边上。运 行时,把鼠标指针移到分割条控件上,会变为调整大 小的形状,此时拖动分割条就可以调整控件大小。 q控件添加顺序很重要,分割条只能改变在它之前添加的一个 控件,而且分割条和将被改变大小的控件必须停靠在容器的 同一边。 n使用BorderStyle属性设置分割条的边框,使用 SplitPosition属性改变分割条的位置。 n通常不处理分割条事件。 分组框控件 n使用GroupBox类封装,它是一个容器控件,可以包 含其他控件,用于对控件进行逻辑分组。 n在窗体设计器中,分组框控件中的控件可以作为一个 整体进行操作。把控件添加到分组框中的方法有两个 : q直接从工具箱中拖动目标控件到分组框中 q先把需要的控件剪切到剪贴板中,然后选中分组框控件并从 剪贴板中复制这些控件。 n分组框属性 qText属性,为分组框设置标题 qBackColor属性,设置分组框背景颜色 qBackgroundImage属性,设置分组框背景图像 qTabStop属性,分组框一般不接收焦点,它将焦点 传递给其包含控件中的第一个项;可以设置这个属 性来指示分组框是否接收焦点。 qAutoSize属性,设置分组框是否可以根据其内容调 整大小。 qAutoSizeMode属性,获取或设置启用 AutoSize 属 性时 分组框的行为方式。 n属性值为 AutoSizeMode枚举值:GrowAndShrink,根据 内容增大或缩小;GrowOnly(默认),可以根据其内容 任意增大,但不会缩小至小于它的 Size 属性值 。 qControls属性,分组框中包含的控件的集合。可以 使用这个属性的Add,Clear等方法。 n分组框事件 qAutoSizeChanged事件,在AutoSize属性发生改变 时触发。 qClick和DoubleClick事件。 qTabStopChanged事件,在TabStops属性改变时触 发。 qKeyUp/KeyPress/KeyDowm事件,当分组框拥有 焦点同时用户松开/按下某个键时触发。 面板控件 n用Panel类封装,与分组框类似,也是一个容器控件 。它没有标题,但是可以和滚动条结合使用。 n如下情况下经常使用面板控件 q子控件要以可见的方式分开 q提供不同的BackColor属性 q使用滚动条以允许多个控件放置在同一个有限空间。 n面板属性 q类似GroupBox的属性 qAutoScroll属性,设置面板滚动条是否可用,默认情况下是 禁用false qBorderStyle属性,设置面板边框风格,有None(默认), FixedSingle,Fixed3D三种。 qBackColor、BackgroundImage属性 选项卡控件 n使用TabControl类封装。在这类控件中,通常在上部 有一些标签供选择,每个标签对应一个选项卡页面 TabPage。选中一个标签就会显示相应的页面而隐藏 其他页面。通过这个方式,可以把大量的控件放在多 个页面中,通过选项卡标签迅速切换。一个很常见的 例子是Windows系统的“显示属性”对话框。 n选项卡属性 qTabPages属性,这是一个选项卡页面的集合,可以通过它 对选项卡的标签项进行管理。 n在属性窗口中单击TabPages属性右边的按钮,显示“TabPage 集合编辑器”对话框,通过它来添加删除选项卡页面和设置页面 属性。如图。 n要为添加后的特定页面添加控件,通过选项卡控件的标签切换 到相应页面,再选中该页面,然后把控件拖动到页面中。 qAlignment属性,指定选项卡的标签位于控件的什 么位置,是一个TabAlignment枚举类型,有Top ( 默认),Bottom,Left,Right四个值。 qAppearance属性,指定标签的外观,有三种风格 :Buttons、FlatButtons、Normal(默认)。 n只有当标签位于顶部时,才可以设置FlatButtons风格;位 于其他位置时,将显示为Buttons。 qMultiLine属性,指定是否可以显示多行标签。 n默认情况为单行显示,在标签超出选项卡可视范围时自动 使用箭头按钮来滚动标签。 n当把标签定位于选项卡的左边或右边时,MultiLine属性自 动为true。 qItemSize属性,指定标签的大小。 qSizeMode属性,指定标签是否自动调整大小来填充标签行 。枚举类型TabSizeMode定义了三种取值。 nNormal:根据每个标签内容调整标签的宽度 nFixed:所有标签宽度相同 nFillToRight:调整标签宽度,使其填充标签行(只有在多行标 签的情况下进行调整) qTabCount属性,指定控件中所包含的标签的数量。 qSelectedIndex属性,当前所选中标签的索引。若没有选中项 ,返回-1。 qSelectedTab属性,当前所选中标签的引用。若没有选中项 ,返回null。 n管理TabPages属性的方法 q可以提供索引访问 ntabControl1.TabPages0.Text = “ 背景 ”; q添加TabPage对象:Add或者AddRange方法。 q删除TabPage对象:Remove方法(参数为TabPage引用) 或RemoveAt方法(参数为索引值) q清除所有的TabPage对象:Clear方法。 nSelectedIndexChanged事件 q改变当前选择的标签时触发这个事件 q可以在这个事件的处理中根据程序状态来激活或禁止相应页 面的某些控件。 n示例程序 滚动类控件 n滚动条控件 n进度条控件 n跟踪条控件 滚动条控件 n用ScrollBar基类封装,使用时有两类:水平滚动条 HScrollBar和垂直滚动条VScrollBar,都派生于 ScrollBar类。 n多数时候不用明确地创建滚动条,许多Windows窗体 都支持自动滚动,它们都派生于ScrollableControl类 ,这个类为滚动条提供内建支持,允许以设置属性的 方式简单地完成滚动条功能。 n滚动条属性 qValue属性,指定滚动条中滑块的位置。 qMinimum属性,指定Value属性的最小值。 qMaximum属性,指定Value属性的最大值。 qSmallChange属性,设置在滚动条端点的某个箭头 上每单击一次鼠标,Value属性减少或增加的量。 qLargeChange属性,设置在滚动条端点和滑块之间 每单击一次鼠标,Value属性减少或增加的量。 n滚动条事件 qValueChanged事件和Scroll事件,通过捕捉该事件 来对滚动条的操作进行相应动作。 进度条控件 n使用ProgressBar类封装,使用矩形方块从左到右显 示某一过程的进度情况,提供一个与任务状态相关的 可视反馈,通常用于有一定时间的任务。 n进度条属性和方法 qMaximum属性,读取或设置进度条的最大计数值。默认为 100。 qMinimum属性,读取或设置进度条的最小计数值。默认为0 。 qValue属性,读取或设置进度条的当前计数值。 qStep属性,调用PerformStep方法时增加进度条的幅度值。 qPerformStep方法,用Step属性指定的数量修改控件的值。 qIncrement方法,用这个方法参数指定的数量修改控件的值 。 跟踪条控件 n用TrackBar类封装,可用于制作仿真滑杆。在 许多视频软件中表示进程的滑杆就是用这一控 件产生的。 n跟踪条属性(见下表) n跟踪条事件 qValueChanged事件,在滑杆移动时进行检测 qScroll事件,可以根据TrackBar中的变化连续操作 其他控件。 属性功能 LargeChange设置按下PageUp或PageDown或者单击 滑杆两侧时 滑杆移动的点数 SmallChange设置按下左右箭头时 滑杆移动的点数 Maximum读取或设置最后点的位置值 Minimum读取或设置第一点的位置值 Orientation设置滑杆时水平显示还是垂直显示 TickStyle设置控件上点号的样式(滑杆上方显示,下方显示,同时显 示或不显示 ) TickFrequency设置控件上显示的点号的数目 Value读取或设置滑杆的当前值 工具栏和状态栏 n工具栏控件通常用于提供访问菜单命令的快捷 方式,状态栏控件通常用于显示程序的状态信 息。在一个完整的Windows应用程序中,这两 种控件必不可少。 工具栏控件 n使用ToolStrip封装(VS.2003中为ToolBar)。可以 将一些常用的控件单元作为子项放在工具栏中,通过 各个子项与应用程序发生联系。通常出现在窗体的顶 部。 n在工具箱中选择ToolStrip控件放置到设计窗体中,默 认状态下在最左侧会有一个下拉按钮,有两种方法添 加设置工具栏子项。 q直接单击下拉按钮在下拉列表中选择需要的子项,然后对该 子项进行属性设置。 q选中工具栏,右击选择属性命令,单击Items后的按钮弹出“ 项集合编辑器”对话框,在其中选择子项和设置属性。 qVS.2003的工具栏使用方法不大一样,请参看参考书1的第 17章第1小节。 工具栏控件的常用属性 属性功 能 BackgroundImage设置背景图片 BackgroundImageLayout设置背景图片的显示对齐 方式 Items设置工具栏上所显示的子项 TabIndex控件名相同时,用来产生一个数组标识 号 ShowItemToolTips设置是否显示工具栏子项上的提示文本 Text设置文本显示内容 TextDirection设置文本显示方向 ContextMenuStrip设置工具栏所指向的弹出菜单 AllowItemReorder是否允许改变子项在工具栏中的顺序。 nToolStrip 的子项类型可以为 ToolStripButton、 ToolStripComboBox、ToolStripSplitButton、 ToolStripLabel、ToolStripSeparator、 ToolStripDropDownButton、ToolStripProgressBar 和 ToolStripTextBox等 n工具栏控件的各个子项使用与设置与前面见过的基本 一致。Separator控件主要提供一个间隔;SplitButton 、DropDownButton常用的属性是DropDownItems, 使用方法:在该控件属性窗口中单击这个属性后带省 略号的按钮,弹出“项集合编辑器”,在左侧下拉列表 中选择合适的子项添加,在右边设置相应项的属性。 q这里的子项属性有: nName:子项名称; nText:子项显示文本; nToolTipText:将鼠标放在子项上时显示的提示文本。要使用这 个属性,必须将工具栏的ShowItemToolTips属性设置为true; nImageIndex:子项使用的图标 n工具栏控件的事件 qItemClicked事件,单击工具栏上的一个子项时触发执行。 qClicked事件,单击工具栏本身时执行。 qDoubleClick事件,双击工具栏时执行。 n演示程序 状态栏控件 n使用StatusStrip类封装(VS.2003中为StatusBar)。 n状态栏一般位于窗体的底部,用于显示系统的一些状 态,比如大小写情况、日期时间等。在状态栏中可以 包含文本、图像、下拉按钮等子项。 q在状态栏中添加子项的操作类似于工具栏,常用的子项有 StatusLabel、SplitButton、DropDownButton和ProgressBar 等 n子项添加方法两种:直接单击设计界面的下拉按钮选择需要的 子项,然后设置其属性;或者是使用“项集合编辑器”对话框。 q状态栏常用的属性和事件类似于工具栏。 视图控件 n列表视图 q以列表的形式显示信息 n树视图 q用于显示层次结构的信息 n数据网格 q用于显示数据库数据信息 列表视图 n用ListView类封装,与列表框类似都是显示一 些项的列表的控件,但功能更强大。 n列表视图中可以使用4中不同方式显示列表项 :大图标、小图标、列表和详细信息模式,可 以在应用程序中选择使用任何一种或是所有的 方式。 n列表视图属性 qView属性,指定列表视图的显示模式,属性值在枚 举类型View中指定 nLargeIcon,显示大图标,并在图标的下面显示标题。 nSmallIcon,显示小图标,并在图标的右边显示标题。 nList,每项包含一个小图标和一个标题,并使用列来组织 列表项,但每列都没有表头。 nDetails,使用报表的形式显示列表项,每项占一行。最左 边的一列显示该项的小图标和标题,其他列显示该项的子 项。这种方式还可以包含一个表头,显示每列的标题,可 以在运行时通过表头来改变列的宽度。 qHeaderStyle属性。在详细信息模式下,列表视图会显示表 头。使用这个属性来设置表头的不同风格,取值由枚举类型 ColumnHeaderStyle设定 nClickable,显示表头,并且它可以响应单击事件。 nNonclickable,显示表头,但它不响应单击事件。 nNone,不显示表头。 qLargeImageList属性和SmallImageList属性 n在大图标模式下,显示LargeImageList中的图像列表; n在其他三个模式下,显示SmallImageList中的图像列表。 qMultiSelect属性,设置列表视图是否可以选择多项。默认为 只能选择一项。 qSorting属性,指定是否对列表项进行排序。 qScrollable属性,指定是否显示滚动条。 n为列表视图添加列表头和列表项 q添加列表头(ColumnHeader类) n在属性窗口中单击Columns属性旁带省略号的按钮,打开 “ColumnHeader集合编辑器”对话框。单击其中的“添加”按 钮添加一个新的列表头,并在右边可以设置它的属性: Name设置表头名称,Text设置表头标题,Width属性设 置列宽度,TextAlign属性设置列的对齐方式等等。 n使用代码添加的例子 listView1.Column.Add(“Drive”,100, HorizontalAlignment.Left); 其中参数分别表示列名称,列宽度和列对齐方式。 q添加列表项(ListItem类) n单击列表视图属性窗口中Items属性旁的按钮,打开 “ListViewItem集合编辑器”对话框。类似添加列表头的操 作添加列表项。其中ImageIndex设置列表项对应的图像 索引,Text设置列表项的标题。 n在包含多列的情况下,要为列表项添加子项。单击对话框 中SubItems属性旁的按钮,打开“ListViewSubItem集合编 辑器”对话框,在其中添加子项。其中第一个子项的标题 就是列表项的标题。 n使用代码添加的例子 listView1.Items.Add( listViewItem1 ); 其中listViewItem1表示一个列表项对象实例。 nItems属性,包含列表视图中的所有项。可以对其使 用索引访问,得到其中的单个项。 q每个列表项具有SubItems属性来访问它的各个子项。比如, listView1.Items0.SubItems0。 q在插入列表项时,列表项本身对应列表视图的第一列,它的 子项对应视图的其他各列。除了详细信息模式外,其他的显 示模式都只显示第一列。 nSelectedIndices属性和SelectedItems属性,获取当 前选择的项。 nLabelEdit属性,设置在运行时是否可以改变列表项的 标题。 n列表视图的方法 qBeginUpdate和EndUpdate qClear qGetItemAt方法,返回指定位置(x,y)的列表项 。 n列表视图的事件 qColumnClick事件,单击列表头时触发这个事件。 可以在这个事件的处理过程中编写代码对列表视图 进行排序。 qSelectedIndexChanged事件,对列表视图中项的 选择发生改变时触发这个事件。 树视图 n用TreeView类封装,主要用于显示层次结构的数据信 息。一般由项或节点构成,节点还可以包含子节点, 可以展开或收起节点,并且每个节点都可以包含标题 和图标。 n添加树视图节点(TreeNode类) q单击属性窗口的No

温馨提示

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

评论

0/150

提交评论