vb控件列表
VB中ListView控件属性、方法、事件
VB ListView控件属性、方法、事件常用属性:View设置或返回控件的视图类型值说明1-LvwIcon 图标类型2-LvwSmallIcon 小图标类型3-LvwList 列表类型4-LvwReport 报表类型Arrange 设置后返回控件的图标排列方式(在图标视图下有效)值说明1-LvwNone 不排列2-LvwAutoLeft 自动靠右排列3-LvwAutoTop 自动靠左排列Icons、SmallIcons、ColumnHeaderIcons属性Icons指定图标视图时的图标与ImageList的绑定SmallIcons、ColumnHeaderIcons指定列表视图时的图标与ImageList 的绑定PICTURE、PictureAlignment属性分别指定ListView控件的背景图片和布局方式ListItems(Index) 属性ListItems 属性是ListView控件中列表项的集合。
Index用于指定列表项集合中的一个对象,我们可以把这个对象看作对一行的引用ListItems集合的属性1. Text 设置或返回显示文本2. key 关键字3. index 索引编号4. icon , smallicon 不同视图时显示单元格的图标5. checked 给checkboxes 打√6. selected 使处于选定状态7. ListSubitems(index)集合我们可以把这个集合看作对这行中单元格的引用Text 设置或返回单元格显示的内容Reporticon 设置单元格的图标8.Subitems(index) 设置或返回单元格文本== ListSubitems (index).textColumnHeaders(index) 属性ColumnHeaders 属性是ListView控件中列标头的集合1. text 显示标题文本2. key3. index4. icon 指定标题图标5. alignment 指定index列的对齐方式(注意:第一列也就是列表项不能指定)6. position 返回当前列的索引7. subitemindex 返回指定列的listsubitem索引TextBackgroud 属性决定text的背景是透明还是ListView的背景色值0 lvwTransparent 透明1 lvw 不透明(用listview的背景色)Ghosted 属性logic决定是否虚状HideColumnHeaders 属性隐藏表头LabelWrap 属性标签转行rgeIcon 或View.SmallIcon 时才使用该属性FullRowSelect整行显示HotTracking热点追踪鼠标指针自动调整为手型HoverSelection 属性自动聚焦鼠标指针自动调整为手型AllowColumnReorder属性值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列Sorted属性当值为.t.时,列表按字母排序常用方法:ListItems.add(index,key,text,icon,smallicon)向listitems添加一列表项。
vb中各个控件的作用
vb中各个控件的作用在VB(Visual Basic)中,控件是应用程序的可视化元素,用于与用户进行交互。
每个控件都有不同的功能和作用,下面我将介绍一些常见VB控件的作用:1. Label控件:用于显示静态文本或说明信息。
Label控件通常用于显示不需要用户输入或交互的文本内容。
2. TextBox控件:用于接收用户输入的文本数据。
用户可以在TextBox控件中输入文本,以便应用程序对其进行处理和使用。
3. Button控件:用于触发特定操作或执行特定功能的按钮。
当用户点击Button 控件时,相应的事件将被触发,从而执行相应的代码。
4. ComboBox控件:提供了一个下拉列表,用户可以从中选择一个选项。
ComboBox控件通常用于提供限定的选择范围,让用户从中选择一个选项。
5. ListBox控件:提供了一个列表,用户可以从中选择一个或多个选项。
与ComboBox控件不同,用户可以直接在列表中进行选择。
6. CheckBox控件:提供了一个选择框,用户可以在多个选项中进行选择。
CheckBox控件通常用于表示二进制的选择,例如勾选或取消勾选一个选项。
7. RadioButton控件:提供了一组互斥的选项,只能选择其中的一个选项。
RadioButton控件通常用于表示互斥的选择,例如选择性别男或女。
8. PictureBox控件:用于显示图像、图标或其他图形。
PictureBox控件可以加载图像文件,并在应用程序中显示出来。
9. Timer控件:计时器控件,可用于在应用程序中生成定时事件。
通过设置定时器的时间间隔和相应事件的处理程序,可以实现定时执行某些操作的功能。
10. Menu控件:提供了一个菜单栏,用于组织和呈现应用程序的不同功能和选项。
用户可以通过点击菜单项来执行相应的功能。
以上是一些常见的VB控件及其作用。
掌握这些控件的使用方法,可以帮助开发人员创建功能完善、交互性强的VB应用程序。
VB常用控件的属性及功能
VB常用控件的属性及功能Visual Basic (VB)是一个常用的编程语言,用于开发Windows应用程序。
在VB中,有许多常用的控件,每个控件都有一些常见的属性和功能。
下面是一些常用控件的属性和功能的概览:2. TextBox(文本框)控件:- Text属性:设置或获取文本框的文本内容。
- Multiline属性:设置或获取文本框是否为多行文本框。
- PasswordChar属性:设置或获取用于掩盖密码的字符。
- ReadOnly属性:设置或获取文本框是否为只读。
- KeyPress事件:在用户按下键盘键时触发的事件。
- TextChanged事件:当文本框的文本内容改变时触发的事件。
3. Button(按钮)控件:- Text属性:设置或获取按钮显示的文本。
- BackColor属性:设置或获取按钮的背景色。
- Enabled属性:设置或获取按钮是否启用。
- Click事件:在用户单击按钮时触发的事件。
- MouseHover事件:当鼠标悬停在按钮上方时触发的事件。
- Items属性:获取或添加组合框中的列表项。
- SelectedIndex属性:获取或设置组合框中选定项的索引。
- DropDownStyle属性:设置或获取组合框的下拉列表样式。
- SelectedIndexChanged事件:当组合框的选中项改变时触发的事件。
- DropDown事件:当组合框展开下拉列表时触发的事件。
5. CheckBox(复选框)控件:- Checked属性:获取或设置复选框的选中状态。
- Text属性:设置或获取复选框显示的文本。
- CheckedChanged事件:当复选框的选中状态改变时触发的事件。
6. RadioButton(单选按钮)控件:- Checked属性:获取或设置单选按钮的选中状态。
- GroupName属性:指定单选按钮所属的组名。
- AutoCheck属性:指定单选按钮是否自动变为选中状态。
VB中常用高级控件
第三章VB中常用高级控件第三章VB中常用高级控件在本章中,读者将会接触到多种VB中的高级ActiveX控件,这些控件,是进行VB较高级编程的重要基础,本章将以简洁的说明和丰富的实例使读者很快的掌握这些控件的使用方法。
本章重点:z熟悉普通控件的使用z了解一些专用控件z熟悉INET控件的使用3.1 普通应用控件所谓的普通应用控件,不是这些控件很普通,而是这些控件可以在许多地方使用,并没有专门的用途,编程者可以根据需要随时使用它们。
3.1.1 ListView控件ListView控件控件与普通控件中的列表框控件很类似,但它提供更多的显示项目的视图。
通过此控件,可以轻松的将项目分成几列,并显示伴随的图标和文本。
基本属性:¾ColumnHeaders 属性该属性用于对 ColumnHeader 对象集合的引用。
ColumnHeader 对象是 ListView 控件中包含标头文字的项目。
ColumnHeader 对象的数目决定每个 ListItem 对象可包含的子项目数目。
删除 ColumnHeader 对象后所有与列关联的子项目也将被删除,并且每个 ListItem 对象的子项目数组将平移以更新 ColumnHeader 的索引,而这将导致剩余的列标头 SubItemIndex 属性的改变。
了解ColumnHeader 对象对学习ListView控件具有重要意义。
下面我们中断一下,先介绍这个对象。
我们将来还要遇到几种类似的情况,就是在一个控件使用过程中,最重要的并不是这个控件本身的属性和方法,而是它所包含对象的属性和方法,这时我们就会转而介绍对象的用法,然后再返回介绍控件本身。
z ColumnHeader对象的基本属性:ColumnHeader对象有count、icon、index、item、key、text等属性。
分别表示如下含义:count:返回集合中ColumnHeader对象的数目icon:返回或者设置被对象显示的图标。
VB常用控件的属性及功能
VB常用控件的属性及功能
(一)TextBox
TextBox是最简单的一种控件,可以接收用户输入。
它支持的属性有:
1、Text:表示TextBox内容的属性,可以设置或获取它的文本值;
2、MaxLength:表示TextBox的最大长度,可以限制用户最多能输入
的文本字符数;
3、BorderStyle:表示TextBox的边框样式;
4、ReadOnly:表示文本框是否是只读,只读时用户只能看而不能修改;
5、AutoPostBack:表示当文本框的内容发生变化,是否触发PostBack操作;
6、BackColor:表示TextBox的背景颜色;
7、ForeColor:表示TextBox字体的颜色;
8、TextMode:表示TextBox的显示模式,默认是“SingleLine”,
也可以设置为“Multline”及“Password”。
TextBox的主要功能是接收用户输入的文本信息。
它可以设置最大字
符数,以控制用户输入,也可以设置文本框是否只读,以消除输入型干扰,并且还可以设置文本框的显示模式,以控制文本框的可见性。
(二)Label
Label是一种用于显示文本的控件,它支持的属性有:
1、Text:表示Label内容的属性,可以设置或获取它的文本值;
2、BackColor:表示Label的背景颜色;
3、BorderStyle:表示Label的边框样式;
4、BorderColor:表示Label边框的颜色;
5、ForeColor:表示Label字体的颜色;
6、Visible:表示Label是否可见。
Label的功能是显示文本,通常它用于提示、警告或说明一些信息。
VB教程:列表框(ListBox)
6、列表框(List Box) 列表框为⽤户提供了选项的列表。
作⽤:显⽰项⽬列表,⽤户可从中选择⼀个或多个项⽬。
(1)List Box控件常⽤的⽅法⽅法描述AddItem向列表框添加新项⽬,其格式为:ListBox控件名.AddItem<项⽬>[,<索引值>]其中:为字符串表达式,表⽰添加到列表框中的新项⽬。
为数值表达式,指定在列表框中插⼊新项⽬的位置。
若为0,则插⼊到第⼀个项⽬位置;若缺省且Sorted属性为False,则插⼊到最后⼀个项⽬位置;若缺省且Sorted属性为True,则插⼊到合适的排序位置。
RemoveItem从列表框中删除项⽬,其格式为:ListBox控件名.RemoveItem<索引值>Clear清除列表框中所有项⽬,其格式为:ListBox控件名.Clear例如添加代码到List1列表框中,运⾏后的结果如下:Private Sub Form_Load()List1.AddItem "Germany"List1.AddItem "India"List1.AddItem "France"List1.AddItem "USA"List1.AddItem "Japan", 0List1.AddItem "China", 1End Sub要从列表中删除项⽬,可使⽤RemoveItem⽅法,如要删除列表中的第⼀个项⽬,可添加如下代码:Private Sub Command1_Click()List1.RemoveItem 0End Sub要删除连结版或标准版的列表框、组合框中的所有项⽬。
可使⽤Clear⽅法:List1.Clear注意:1)可以在设计时添加项⽬。
做法:选列表框“属性”窗⼝中[List]属性,在下拉的空⽩框中输⼊项⽬,并按[CTRL]+[回车]键进⾏换⾏。
大学计算机vb课程 第五章 常用控件【精选】
0--Unchecked:未被选定
False:未选定 1--Checked:选定
2--Grayed:灰色,禁止选择
Style属性
0--Standard:标准方式
1--Graphical:图形方式
Picture属性
未选定时的图标或位图
DownPicture属性 选定时的图标或位图
DisabledPicture属性 禁止选择时的图标或位图
选中。
Sorted(D):True:按字母顺序排列。False:按加入先后顺序排列。 Text(P) :被选中列表项的内容,如:
List 1.List(List 1.ListIndex) = List1.Text MultiSelect:0-None:禁止多项选择;
1-Simple:简单多项选择; 2-Extended:扩展多项选择。
常用事件
5.1 单选钮和复选框
有Click事件,因为单击时自动改变状态,故不需要编写过程。
【例5-1】
用单选按钮和复选框制作如图 所示窗口。当用户选择了“所在学 院”和“学习课程”后,单击“确 定”,则选择结果显示在下面的文 本【框属中性。设置】
默认名
Name属性
其它属性及设置
Option1 Option2 Option3 Check1 Check2 Check3 Check4 Label1
择的项目列出来,不 组合框有三种类型,由其Style属性值决定,Style
能直接修改项目。 可为0、1或2。
0——默认值。下拉式组合框。
1——简单组合框。
2——下拉式列表框。
常用属性
5.3 列表框和组合框
说明:P——只可在程序中设置或引用,D——只可在设计状态设置 List (PD) :字符型数组,存放列表框的项目,下标从0开始。 ListIndex(P):选中项目的序号,无项目被选定时为-1。 ListCount(P):项目的数量,ListCount-1是最后一项的下标。 Selected(P):逻辑数组。Selected(i)的值为True表示第i+1项被
VB常用控件
窗体Form1装载事件对应的代码如下。 1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)_ 2 Handles MyBase.Load „ 显示窗体前发生的事件 3 Label1.Text = "请输入您的姓名:" „ Label1为标签控件,属性Text显示标签中的文本 4 Button1.Text = "确定" „ 显示按钮对应文本 5 End Sub 在Form2中“返回”按钮(Button1)单击事件对应的代码如下。 1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 2 Handles Button1.Click 3 Dim frm1 As New Form1 „ 此声明使frm1代表了第一个窗体 4 Me.Hide() „ 采用Hide()方法隐藏当前窗体,即第二个窗体 5 frm1.Show() „ 采用Show()方法显示第一个窗体,即返回到第一个窗体 6 End Sub
3.1 窗体和控件
窗体是程序的工作舞台,它是一个 容器,可在上面安放各种控件,从而形成 各种风格的应用程序界面。应用程 序界面(窗体)可以分为三种形式, Windows窗体、Web窗体、和控制台应用 程序。
1.Windows窗体 Windows窗体是用于创建Windows应用程序图形界面的 应用程序。 创建Windows窗体的方法如下: 依次单击“开始”→“程序”→ “Microsoft Visual Studio .NET 2003” →“Microsoft Visual Studio .NET 2003,”菜单命令,在打开的“起始页”窗口中单击 “新建项目 ”,打开“新建项目”窗口,如图1-2所示。 单击窗口左边的“Visual Basic项目”,从右侧的窗口中 单击“Windows应用程序”,在“名称”中输入自己想 要的程序名称,在“位置”中可以输入或从“浏览”找 到要保存的位置,单击“确定”按钮,就可以进入 Windows应用程序设计窗口。如图3-1所示。
VB常用控件的属性及功能
VB常用控件的属性及功能(转帖)控件目录:Form(窗体)、PictureBox(图片框)、Label(标签)、TextBox(文本框)、Frame(框架)、CommandButton (命令按钮)、OptionButton(选项按钮)、ListBox(列表框)、Hscrollbar(水平滚动条)Vscrollbar(垂直滚动条)、Timer(时钟)、Shape(形状)、Line(直线)、Image(图片框)、OLE Container(OLE容器)Form(窗体) 的常用属性及功能1. name (窗体名称):为窗体指定一个名字。
2. Appearance:设置一个窗体是否运行时以3D效果显示。
0—Flat:窗体以平面的形式显示,1—3D:窗体以3D的形式显示(默认值)。
3. AutoRedraw:控制窗体的重画。
True:若其他窗口覆盖当前窗体再返回该再返回该窗体时,VB将重画该窗体内的所有图形False:VB必须调用一个事件过程才能完成重画。
4. BackColor:设置对象中文本和图形的背景色。
5. ForeColor:设置对象中文本和图形的前景色。
6. BorderStyle:为窗体等对象设置边框的式样。
0—None:窗体无边框1—FixedSingle:程序运行后窗体大小不被改变,单线边框2—Sizable:程序运行后窗体大小可以被改变,双线边框3—FixedDouble:程序运行后窗体大小不被改变,双线边框4—FixedToolWindo:程序运行后窗体大小可以被改变,单线边框5—SizableToolWindow:程序运行后窗体大小可以被改变。
7. Caption:设置窗体标题栏显示的文本。
8. Clipcontrols:设置Paint事件的绘图方法—是重画整个对象还是重画新显示的区域。
True:重画整个对象False:重画新显示的区域。
9. ControlBox:运行程序时该属性有效。
VB中ListView的用法
VB中ListView的用法listview控件可有4种不同的视图显示方法,跟“资源管理器”里的“查看”方式相似:(1)无图标;(2)小图标;(3)列表;(4)报表式。
使用哪种视图,可由该控件的view属性设置控制。
其中“报表”视图用来显示记录数据很适合。
listview控件包括listItem对象和ColumnHeader对象。
本人简单理解为:listItem对象看成数据行;ColumnHeader对象看成列标题。
listItem对象(行)有两部分:一部分是图标和简要描述的文本(第1列);另一部分是前者的子项文本信息(第2列,第3列......)。
而listItems即是对listItem对象集合(所有行)的引用。
故此,listItems(1) 可以表示为第1行;listitems(1).text 返回第1行第1列的文本值;listitems(1).subItem(1) 返回第1行第2列的文本值。
【控件常用属性】[1]view属性该属性有4个值可设定:1---小图标视图显示2---列表3---报表0---无图标(默认)[2]AllowColumnReorder属性值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列。
[3]Checkboxes属性设置为.t.时,每一行数据前将显示一复选框。
[4]FlatScrollBar属性设置为.f.时控件将显示滚动条。
[5]FullRowSelect属性设置为.t.时可以整行地选择数据。
[6]GridLines属性设置为.t.时控件将显示网格线。
(只作用于“报表”视图)[7]HideColumnHeaders属性设置为.f.时,列标题可视,反之则不可视。
[8]HotTracking属性设置为.t.时,鼠标所在行将以高亮度显示。
[9]Icons,SmallIcons属性两者设置listview控件视图相关联的ImageList控件中的图片。
Icons指明视图为大图标时的关联;SmallIcons指明视图为小图标时的关联。
VB常用控件介绍
VB常用控件介绍VB(Virtual Basic)是一种面向对象的编程语言,常用于开发各种图形用户界面(GUI)应用程序。
在VB中,控件是构成用户界面的基本元素,通过控件可以实现用户与程序的交互。
下面是一些常用的VB控件的介绍。
1. 按钮控件(Button):按钮是VB中最常用的控件之一,用于触发一些事件或执行一些动作。
通过设置按钮的文字、大小、位置和事件处理程序,可以实现各种用户交互功能。
3. 文本框控件(TextBox):文本框用于接收用户的输入,并可以将输入的文本保存到变量中。
可以设置文本框的大小、位置、边框样式等属性,并可以通过事件处理程序响应用户输入的变化。
4. 列表框控件(ListBox):列表框用于显示一组选项,并允许用户从中选择一个或多个选项。
可以通过添加和移除选项,以及设置列表框的大小、位置、滚动条等属性来定制列表框的外观和功能。
6. 复选框控件(CheckBox):复选框用于表示一个状态,可以被选中或取消选中。
常用于表示一个二进制选项,比如启用/禁用一些功能。
可以设置复选框的大小、位置、文本等属性,并可以通过事件处理程序获取用户的选择。
7. 单选按钮控件(RadioButton):单选按钮用于表示一组互斥的选项,用户只能选择其中的一个。
常用于表示一个多项选择,比如选择性别。
可以设置单选按钮的大小、位置、文本等属性,并可以通过事件处理程序获取用户的选择。
8. 进度条控件(ProgressBar):进度条用于显示任务的进度,可以根据任务的完成情况来改变进度条的长度和显示。
可以通过设置进度条的最小值、最大值、当前值等属性,以及处理进度改变的事件来定制进度条的功能。
9. 图像框控件(PictureBox):图像框用于显示图像或图表,可以加载本地或网络上的图像文件,并可以设置图像框的大小、位置等属性。
可以通过处理鼠标点击、鼠标移动等事件来实现与图像相关的交互功能。
10. 文件对话框控件(FileDialog):文件对话框用于让用户选择文件或保存文件,可以通过设置对话框的类型、过滤条件、默认目录等属性来限制用户的选择范围,并可以通过事件处理程序获取用户选择的文件路径。
VB编程6.0 常用控件
学
【例2】框架的应用示例(如下图)。
程 序 设 计 常 用 控 件
VB ——
程 序 设 计 常 用 控 件
名 Private Sub Command1_Click() 学 茂 If Option1.Value = True And Option3.Value = 院 Text1.Text = "您选择了宋体红色" Text1.FontName = "宋体" Text1.ForeColor = vbRed End If If Option1.Value = True And Option4.Value = Text1.Text = "您选择了宋体绿色" Text1.FontName = "宋体" Text1.ForeColor = vbGreen End If If Option2.Value = True And Option3.Value = Text1.Text = "您选择了黑体红色" Text1.FontName = "黑体" Text1.ForeColor = vbRed End If If Option2.Value = True And Option4.Value = Text1.Text = "您选择了黑体绿色" Text1.FontName = "黑体" Text1.ForeColor = vbGreen End If End Sub
Font对象属性: Name Bold Size Bold Italic
Underline Strikethrough
茂
名
院
学
二: 标签
1: 主要功能 利用Caption属性来作程序中的提示文字。 2: 主要属性 Caption Autosize Alignment BorderStyle
VB程序设计常用控件
VB程序设计常用控件1. 文本框(TextBox)文本框是VB程序设计中最常用的控件之一、它用于用户输入文本或显示程序输出的文本。
在VB中,可以通过设置属性来控制文本框的外观和行为,如文本框的背景色、字体、边框样式等。
还可以通过事件处理程序来响应文本框的各种事件,如文本改变、获取焦点等。
3. 按钮(Button)按钮是用户交互的主要方式之一、通过按钮,用户可以执行特定的操作,如提交表单、打印文档等。
在VB中,可以设置按钮的文本、字体、背景色等属性,以及添加单击事件处理程序等。
4. 列表框(ListBox)列表框用于显示一组选项,并允许用户从中选择一个或多个选项。
在VB中,可以通过添加列表项来初始化列表框的选项列表,也可以通过代码动态添加和删除列表项。
还可以设置列表框的选择模式(单选或多选)、滚动条等属性,并添加选择改变的事件处理程序。
组合框是列表框和文本框的结合体。
它可以显示一组选项,并允许用户从中选择一个选项,同时还可以允许用户输入自定义的文本。
在VB中,可以设置组合框的选项列表,也可以允许用户输入自定义的文本或限制用户只能选择列表中的选项。
6. 复选框(CheckBox)复选框用于表示一个二进制选择,即用户可以选择或取消选择一些选项。
在VB中,可以设置复选框的文本、状态、样式等属性,并添加选择改变的事件处理程序。
7. 单选按钮(RadioButton)单选按钮用于表示一组互斥的选项,即用户只能选择其中的一个选项。
在VB中,可以设置单选按钮的文本、状态、样式等属性,并添加选择改变的事件处理程序。
8. 图片框(PictureBox)图片框用于显示图像。
在VB中,可以设置图片框的图像、大小模式、背景色等属性,并添加单击、双击等事件处理程序。
9. 进度条(ProgressBar)进度条用于显示操作的进度状态。
在VB中,可以设置进度条的最小值、最大值、当前值等属性,以及添加值改变的事件处理程序。
10. 树视图(TreeView)树视图用于显示层次结构的数据。
VB控件教程大全(详细)
第三章
VB 6.0的常用控件
当文本框失去了焦点(处于非活动状态)时就会产生LostFocus事件
3.1 标签与文本框 3.2 图片框和图像框 3.3 按钮控件 3.4 复选框和单选 框 3.5 列表框和组合框 3.6 滚动条 3.7 计时器 3.8框架 3.9 窗体布局 3.10 使用ActiveX控件 (4)SetFocus方法 SetFocus方法可以用于将焦点移动到指定的对象,是文本框较常用的. 格式: [对象.]SetFocus 3.1.3 应用举例 例3.1: 利用LostFocus事件 改变文本框中的内容。 在 窗 体 form1上 建 立 两 个 文 本框分别是Text1、Text2, 下 面 在 form1 的 load 事 件 过 程中作如下设置: 该方法可以把光标移到指定的文本框中 Private Sub Form_Load() Form1.Text1.Text="" Form1.Text2.Text="" Form1.Text1.Font="宋体" Form1.Text2.Font="宋体" Form1.Text1.FontSize=14 Form1.Text2.FontSize=14 Form1.Text1.BackColor=vbBlack Form1.Text1.ForeColor=vbWhite Form1.Text2.ForeColor=vbBlue Form1.Text2.BackColor=vbRed Form1.Show Form1.Text1.SetFocus End Sub
3.1 标签与文本框 3.2 图片框和图像框 3.3 按钮控件 3.4 复选框和单选 框 3.5 列表框和组合框 3.6 滚动条 3.7 计时器 3.8框架 3.9 窗体布局 3.10 使用ActiveX控件 标签所具有的其它属性:
VB自定义ListBox控件
VB6自定义ListBox控件从测试图中可以看到自定义控件比系统自带的控件速度快58倍Form 代码Private Declare Function GetTickCount Lib "kernel32" () As LongDim Tk As LongDim Mtk As Long'自定义控件添加数据Private Sub Command1_Click()Tk = GetTickCountFor i = 1 To 100000xList1.AddItem "项目:" & iNext ixList1.DrawListBoxMtk = GetTickCountLabel2.Caption = "添加10W行数据用时:" & Mtk - Tk & "毫秒"End SubPrivate Sub Command2_Click()xList1.RemoveItem xList1.ListIndexxList1.DrawListBoxEnd SubPrivate Sub Command3_Click()xList1.ItemFontColor(3) = 255xList1.DrawListBoxEnd Sub'自带列表添加数据Private Sub Command4_Click()Tk = GetTickCountFor i = 1 To 100000List1.AddItem "项目:" & iNext iMtk = GetTickCountLabel3.Caption = "添加10W行数据用时:" & Mtk - Tk & "毫秒" End SubUsercontrol自定义代码Option Explicit'VB绘制简单的列表控件'作者扣:六五九三五四九五三来水美树‘'添加工程组件Timer ,PictureBox (命名:SollBar),各属性设置如下'timer.Enabled 设为False' .InterVal 设为1'Sollbar.AutoRedraw = True'Sollbar.BorderStyle = 0'Sollbar.Appearance = 0'Sollbar.Visible = False'UserControl.AutoRedraw = True'粘贴以下代码即可运行Private Type POINTAPIx As Longy As LongEnd TypePrivate Type RECTLeft As LongTop As LongRight As LongBottom As LongEnd TypePrivate Type ListItemsText As StringFontColor As Long' Check As Boolean '' Icon As StdPicture 此处可为每行添加图标,End TypeDim m_ListCount As Long '总行Dim m_ListIndex As Long '当前选中行Dim m_Grid As Boolean '线段Dim m_Page As Integer 'Dim m_CurIndex As Long '当前置顶的行号Dim m_ItemHeight As Integer '行高Dim m_Stretch As Boolean '决定图片与窗口一样大小Dim m_BorderColor As LongDim m_SelBackColor As LongDim m_pic As StdPictureDim m_SollbarValue As LongDim m_SollbarValueMax As LongDim sReg As Long '滑动区域Dim m_Slid As Long '滑块Dim m_List() As ListItemsDim Tk As LongDim Mtk As LongDim ret As LongPublic Event MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Public Event MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Public Event MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) Public Event Click()Public Event DblClick()Private Const ButHeight = 18Private Const SLIDERMINHEIGHT = 10 '滑块最小高度Private Const SOLLCOMMANDHEIGHT = &HFF '滚动条上下按钮的高度Private Const SLIDHEIGHTMIN = &HFF '滚动条最小滑块高度Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As LongPrivate Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As LongPrivate Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpPoint As Long) As LongPrivate Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As LongPrivate Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As LongPrivate Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As LongPrivate Const ALTERNA TE = 1Private Const WINDING = 2Private Declare Function SetPolyFillMode Lib "gdi32" (ByVal hdc As Long, ByVal nPolyFillMode As Long) As LongPrivate Declare Function CreateRectRgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As LongPrivate Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long Private Declare Function FrameRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As LongPrivate Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As LongPrivate Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As LongPrivate Declare Function GetTickCount Lib "kernel32" () As LongPrivate Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long Private Const DT_LEFT = &H0Private Const DT_CENTER = &H1Private Const DT_RIGHT = &H2Private Const DT_SINGLELINE = &H20Private Const DT_VCENTER = &H4Private Const DT_WORDBREAK = &H10Private Const DT_CALCRECT = &H400Private Const DT_EDITCONTROL = &H2000'添加行Public Sub AddItem(ByVal Text As String)If m_ListCount = 0 ThenReDim Preserve m_List(0) As ListItemsElseReDim Preserve m_List(UBound(m_List) + 1) As ListItemsEnd Ifm_ListCount = UBound(m_List) + 1m_List(UBound(m_List)).Text = Textm_List(UBound(m_List)).FontColor = UserControl.ForeColorEnd Sub'绘制矩形Private Sub DrawRectEx(sRect As RECT, ByVal cColor As Long)UserControl.Line (sRect.Left, sRect.Top)-(sRect.Right, sRect.Top), cColorUserControl.Line (sRect.Right, sRect.Top)-(sRect.Right, sRect.Bottom + 15), cColorUserControl.Line (sRect.Left, sRect.Bottom)-(sRect.Right, sRect.Bottom), cColorUserControl.Line (sRect.Left, sRect.Top)-(sRect.Left, sRect.Bottom), cColorEnd Sub'取渐变色中间的值Private Function BlendColors(ByVal lngColor1 As Long, _ByVal lngColor2 As Long, _ByVal bStyle As Boolean, _Optional addValue As Long = 0) As SingleIf bStyle = True ThenBlendColors = RGB(((lngColor1 And &HFF) + (lngColor2 And &HFF)) / 2 + addValue, _ (((lngColor1 \ &H100) And &HFF) + ((lngColor2 \ &H100) And &HFF)) / 2 + addValue, _(((lngColor1 \ &H10000) And &HFF) + ((lngColor2 \ &H10000) And &HFF)) / 2 + addValue)ElseBlendColors = RGB(((lngColor1 And &HFF) + (lngColor2 And &HFF)) / 2 - addValue, _ (((lngColor1 \ &H100) And &HFF) + ((lngColor2 \ &H100) And &HFF)) / 2 - addValue, _(((lngColor1 \ &H10000) And &HFF) + ((lngColor2 \ &H10000) And &HFF)) / 2 - addValue)End IfEnd FunctionPrivate Sub DrawGradientColor(ByVal sColor As Long, _ByVal eColor As Long, _ByRef sRect As RECT, _Optional Variable As Boolean = True, _Optional sStyle As Integer = 0)Dim sR As SingleDim sG As SingleDim sB As SingleDim eR As SingleDim eG As SingleDim eB As SingleDim cR As SingleDim cG As SingleDim cB As SingleDim Z As LongOn Error GoTo Err_NetsR = sColor Mod 256sG = sColor \ 256 Mod 256sB = sColor \ 256 \ 256eR = eColor Mod 256eG = eColor \ 256 Mod 256eB = eColor \ 256 \ 256If Variable = True Then '变亮sR = sR * 1.2: sG = sG * 1.2: sB = sB * 1.2eR = eR * 1.2: eG = eG * 1.2: eB = eB * 1.2End IfIf sStyle = 0 Then '用垂直方式填充cR = (sR - eR) / sRect.BottomcG = (sG - eG) / sRect.BottomcB = (sB - eB) / sRect.BottomFor Z = sRect.Top To sRect.Bottom - 1UserControl.Line (sRect.Left, Z)-(sRect.Right, Z), RGB(eR + (Z * cR), eG + (Z * cG), eB + (Z * cB))Next ZElsecR = (sR - eR) / sRect.RightcG = (sG - eG) / sRect.RightcB = (sB - eB) / sRect.RightFor Z = sRect.Left To sRect.Right - 1UserControl.Line (Z, sRect.Top)-(Z, sRect.Bottom), RGB(eR + (Z * cR), eG + (Z * cG), eB + (Z * cB))Next ZEnd IfExit SubErr_Net:End SubPrivate Sub DrawGradientColorX(ByVal sColor As Long, _ByVal eColor As Long, _ByRef sRect As RECT, _Optional Variable As Boolean = True, _Optional cValue As Long = 0)Dim sR As SingleDim sG As SingleDim sB As SingleDim eR As SingleDim eG As SingleDim eB As SingleDim cR As SingleDim cG As SingleDim cB As SingleDim Z As LongDim tz As LongsR = sColor Mod 256sG = sColor \ 256 Mod 256sB = sColor \ 256 \ 256eR = eColor Mod 256eG = eColor \ 256 Mod 256eB = eColor \ 256 \ 256If Variable = True Then '变亮sR = sR * 1.2: sG = sG * 1.2: sB = sB * 1.2eR = eR * 1.2: eG = eG * 1.2: eB = eB * 1.2End IfcR = (sR - eR) / sRect.BottomcG = (sG - eG) / sRect.BottomcB = (sB - eB) / sRect.BottomIf cValue = 1 ThenFor Z = sRect.Left To sRect.Right - 1If Z >= (sRect.Right / 2) Then Exit SubSollbar.Line (Z, sRect.Top)-(Z, sRect.Bottom), RGB(eR + (Z * cR), eG + (Z * cG), eB + (Z * cB))Next ZElseFor Z = (sRect.Right / 2) To sRect.Left Step -1tz = sRect.Right / 2tz = tz + tz / 2Sollbar.Line (sRect.Right / 2 + (sRect.Right / 2 - Z), sRect.Top)-(sRect.Right / 2 + (sRect.Right / 2 - Z), sRect.Bottom), RGB(eR + (tz * cR), eG + (tz * cG), eB + (tz * cB)) Next ZEnd IfEnd Sub'输出文字Private Sub sDrawText(ByRef sRect As RECT, ByVal Text As String, Align As AlignmentConstants)Select Case AlignCase vbLeftJustifysRect.Left = sRect.Left + 1sRect.Top = sRect.Top + 4DrawText hdc, Text, -1, sRect, DT_LEFT Or DT_EDITCONTROL Or DT_WORDBREAKCase vbRightJustifysRect.Left = sRect.Left + 1DrawText hdc, Text, -1, sRect, DT_LEFT Or DT_VCENTER Or DT_SINGLELINECase vbCenterDrawText hdc, Text, -1, sRect, DT_CENTER Or DT_VCENTER Or DT_WORDBREAKEnd SelectEnd Sub'绘制滚动条按钮Private Sub DrawPoly()Dim Rgn As LongDim FillMode As LongDim Brush As LongDim Bom As LongDim Wid, Hei As LongWid = Sollbar.ScaleWidth / Screen.TwipsPerPixelXHei = Sollbar.ScaleHeight / Screen.TwipsPerPixelYDim Poyl1(2) As POINTAPIDim Poyl2(2) As POINTAPIPoyl1(0).x = Wid / 2Poyl1(0).y = ButHeight / 2 - 1Poyl1(1).x = Wid / 2 + 5Poyl1(1).y = ButHeight / 2 + 4Poyl1(2).x = Wid / 2 - 5Poyl1(2).y = ButHeight / 2 + 4Poyl2(0).x = Wid / 2 - 4Poyl2(0).y = (Hei - ButHeight) + ButHeight / 2 - 3Poyl2(1).x = Wid / 2 + 4Poyl2(1).y = (Hei - ButHeight) + ButHeight / 2 - 3Poyl2(2).x = Wid / 2Poyl2(2).y = (Hei - ButHeight) + ButHeight / 2 + 1FillMode = SetPolyFillMode(Sollbar.hdc, ALTERNATE) Rgn = CreatePolygonRgn(Poyl2(0), 3, FillMode) Brush = CreateSolidBrush(255)FillRgn Sollbar.hdc, Rgn, BrushDeleteObject RgnDeleteObject BrushRgn = CreatePolygonRgn(Poyl1(0), 3, FillMode) Brush = CreateSolidBrush(255)FillRgn Sollbar.hdc, Rgn, BrushDeleteObject RgnDeleteObject BrushEnd SubPrivate Sub DrawSollbar(ByVal SollBarMaxValue As Long, ByVal nv As Long)Dim x As SingleDim y As SingleDim sRe As RECTSollbar.ClsDrawPolysReg = Sollbar.ScaleHeight - SOLLCOMMANDHEIGHT * 2m_Slid = sReg / (SollBarMaxValue + 1)If m_Slid < SOLLCOMMANDHEIGHT Thenm_Slid = SOLLCOMMANDHEIGHTEnd Ify = SOLLCOMMANDHEIGHT + (sReg - m_Slid) / SollBarMaxV alue * nvsRe.Left = 0sRe.Top = ysRe.Right = 255sRe.Bottom = y + m_SlidDrawGradientColorX &H80FF80, &H80FF80, sRe, True, 1DrawGradientColorX &H80FF80, &H80FF80, sRe, True, 2Sollbar.Line (sRe.Left, sRe.Top)-(sRe.Right - 15, sRe.Top), m_BorderColorSollbar.Line (sRe.Left, sRe.Top)-(sRe.Left, sRe.Bottom), m_BorderColorSollbar.Line (sRe.Left, sRe.Bottom)-(sRe.Right - 15, sRe.Bottom), m_BorderColorSollbar.Line (sRe.Right - 15, sRe.Top)-(sRe.Right - 15, sRe.Bottom + 10), m_BorderColor'For X = 1 To 255' Sollbar.Line (X, Y)-(X, Y + m_Slid), 255'Next XEnd SubPrivate Function GetSollBarValue(ByVal y As Single, ByVal SlidHeight As Long, ByVal SollBarMaxValue As Long, ByRef SlidRect As RECT) As LongOn Error GoTo Err_NetIf y <= SlidRect.Top Then: GetSollBarValue = -1: Exit Function ' 向上滚动按钮点击If y >= (SlidRect.Bottom + SlidRect.Top) Then: GetSollBarValue = -2: Exit Function ' 向下滚动按钮点击GetSollBarValue = (y - SlidHeight) / (SlidRect.Bottom / SollBarMaxValue)Exit FunctionErr_Net:GetSollBarValue = -1End FunctionPrivate Sub Sollbar_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 ThenTk = GetTickCountDim sRect As RECTDim nv As IntegerWith sRect.Top = 255.Left = 0.Right = 255.Bottom = sRegEnd Withret = GetSollBarValue(y, m_Slid, m_SollbarValueMax, sRect)If ret = -1 ThenTimer1.Enabled = TrueElseIf ret = -2 ThenTimer1.Enabled = TrueElsem_SollbarValue = retEnd IfDrawSollbar m_SollbarValueMax, m_SollbarValuem_CurIndex = m_SollbarV alueDrawListBoxEnd IfEnd SubPrivate Sub Sollbar_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) If Button = 1 ThenMtk = GetTickCountIf (Mtk - Tk) < 20 Then Exit SubTk = GetTickCountSollbar_MouseDown Button, Shift, x, yEnd IfEnd SubPrivate Sub Sollbar_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) Timer1.Enabled = FalseEnd Sub'通过鼠标X,Y获取当前选中的行与列Private Function GetMousedwValue(ByVal y As Single, ByVal x As Single) As LongDim y1 As LongDim ix As IntegerDim x1 As LongOn Error GoTo Err_NetIf m_ListCount = 0 Then: GetMousedwValue = -1: Exit Functiony1 = Int(y / m_ItemHeight) 'GetMousedwValue = y1 + m_CurIndexErr_Net:End FunctionPrivate Sub UserControl_Click()RaiseEvent ClickEnd SubPrivate Sub UserControl_DblClick()RaiseEvent DblClickEnd SubPrivate Sub UserControl_KeyPress(KeyAscii As Integer)'Select Case KeyAscii' Case 72' If m_SollbarValue <= 0 Then Exit Sub' m_SollbarValue = m_SollbarValue - 1' Case 82' If m_SollbarValue >= m_SollbarValueMax Then Exit Sub' m_SollbarValue = m_SollbarValue + 1'End Select' DrawSollbar m_SollbarValueMax, m_SollbarValue' m_CurIndex = m_SollbarV alue' DrawListBoxEnd SubPrivate Sub UserControl_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 1 Thenm_ListIndex = GetMousedwValue(y, x)If m_ListIndex > (m_ListCount - 1) Thenm_ListIndex = m_ListCount - 1End IfDrawListBoxEnd IfRaiseEvent MouseDown(Button, Shift, x, y)End SubPrivate Sub UserControl_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)RaiseEvent MouseMove(Button, Shift, x, y)End SubPrivate Sub UserControl_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) RaiseEvent MouseUp(Button, Shift, x, y)End Sub'绘制ListBox 核心代码Public Sub DrawListBox()Dim sBack As RECTDim selRect As RECTDim i As IntegerDim cut As LongDim m_Count As Longm_Page = UserControl.ScaleHeight / m_ItemHeightUserControl.Height = m_Page * m_ItemHeightUserControl.Cls'有背景就画背景If Not m_pic Is Nothing ThenIf m_Stretch = False ThenSet UserControl.Picture = m_picElseUserControl.PaintPicture m_pic, 0, 0, UserControl.ScaleWidth, UserControl.ScaleHeightEnd IfEnd If'绘制网格’If m_Grid = True ThenFor i = 1 To m_PageUserControl.Line (16, i * m_ItemHeight)-(UserControl.Width - 16, i * m_ItemHeight), m_BorderColor'BlendColors(m_BorderColor, m_BorderColor, True, 1)Next iEnd If'绘制边框With sBack.Top = 0.Left = 0.Right = UserControl.ScaleWidth - Screen.TwipsPerPixelX.Bottom = UserControl.ScaleHeight - Screen.TwipsPerPixelYEnd WithDrawRectEx sBack, m_BorderColor 'm_BorColorIf m_ListCount = 0 Then Exit Sub'绘制列表If m_ListCount <= m_Page ThenFor cut = 0 To m_ListCount - 1If cut = m_ListIndex Then '绘制选中行selRect.Left = 16selRect.Top = cut * m_ItemHeight - m_CurIndex * m_ItemHeightselRect.Right = UserControl.ScaleWidth - 32selRect.Bottom = selRect.Top + m_ItemHeightDrawGradientColor m_SelBackColor, m_SelBackColor, selRect, False, 1 End IfsBack.Left = 1 '绘制行文字sBack.Top = (cut * m_ItemHeight) / Screen.TwipsPerPixelYsBack.Right = UserControl.ScaleWidth - 16sBack.Bottom = sBack.Top + m_ItemHeight / Screen.TwipsPerPixelYUserControl.ForeColor = m_List(cut).FontColorsDrawText sBack, m_List(cut).Text, vbLeftJustifyNext cutElseSollbar.Visible = True ' 加载滚动条Sollbar.BackColor = &HE0E0E0Sollbar.Top = 16Sollbar.Height = UserControl.ScaleHeight - 32Sollbar.Left = UserControl.ScaleWidth - Sollbar.Width - 16m_SollbarValueMax = m_ListCount - m_PageDrawSollbar m_SollbarValueMax, m_SollbarValueIf (m_CurIndex + m_Page) > m_ListCount Thenm_Count = m_ListCountElsem_Count = m_CurIndex + m_PageEnd IfFor cut = m_CurIndex To m_Count - 1If cut = m_ListIndex ThenselRect.Left = 16selRect.Top = cut * m_ItemHeight - m_CurIndex * m_ItemHeightselRect.Right = UserControl.ScaleWidth - 32selRect.Bottom = selRect.Top + m_ItemHeightDrawGradientColor m_SelBackColor, m_SelBackColor, selRect, False, 1End IfsBack.Left = 1sBack.Top = (cut * m_ItemHeight) / Screen.TwipsPerPixelY - m_CurIndex * (m_ItemHeight / Screen.TwipsPerPixelY)sBack.Right = UserControl.ScaleWidth - 16sBack.Bottom = sBack.Top + m_ItemHeight / Screen.TwipsPerPixelYUserControl.ForeColor = m_List(cut).FontColorsDrawText sBack, m_List(cut).Text, vbLeftJustifyNext cutEnd IfEnd Sub'行高Public Property Get ItemHeight() As IntegerItemHeight = m_ItemHeightEnd PropertyPublic Property Let ItemHeight(ByVal vNewValue As Integer) If vNewValue < 255 ThenvNewValue = 255End Ifm_ItemHeight = vNewValuePropertyChanged "ItemHeight"DrawListBoxEnd PropertyPublic Property Get Grid() As BooleanGrid = m_GridEnd PropertyPublic Property Let Grid(ByVal vNewValue As Boolean)m_Grid = vNewValuePropertyChanged "Grid"DrawListBoxEnd PropertyPublic Property Get ListIndex() As LongListIndex = m_ListIndexEnd PropertyPublic Property Let ListIndex(ByVal vNewValue As Long)m_ListIndex = vNewValuePropertyChanged "ListIndex"DrawListBoxEnd PropertyPublic Property Get ListCount() As LongListCount = m_ListCountEnd PropertyPublic Property Get CurIndex() As LongCurIndex = m_CurIndexEnd Property'边框颜色Public Property Get BorderColor() As OLE_COLORBorderColor = m_BorderColorEnd PropertyPublic Property Let BorderColor(ByVal vNewValue As OLE_COLOR)m_BorderColor = vNewValuePropertyChanged "BorderColor"DrawListBoxEnd Property'背景Public Property Get BackColor() As OLE_COLORBackColor = UserControl.BackColorEnd PropertyPublic Property Let BackColor(ByVal vNewValue As OLE_COLOR) UserControl.BackColor = vNewValuePropertyChanged "BackColor"DrawListBoxEnd Property'List数据Public Property Get List(ByVal Index As Long) As StringList = m_List(Index).TextEnd PropertyPublic Property Let List(ByVal Index As Long, ByVal vNewValue As String) m_List(Index).Text = vNewValuePropertyChanged "List"'DrawListBox 为了提高速度,这段不建议在里面使用,End PropertyPublic Property Get ItemFontColor(ByVal Index As Long) As Long ItemFontColor = m_List(Index).FontColorEnd PropertyPublic Property Let ItemFontColor(ByVal Index As Long, ByVal vNewValue As Long) m_List(Index).FontColor = vNewValuePropertyChanged "ItemFontColor"'DrawListBox 为了提高速度,这段不建议在里面使用,End PropertyPublic Property Get ForeColor() As OLE_COLORForeColor = UserControl.ForeColorEnd PropertyPublic Property Let ForeColor(ByVal vNewValue As OLE_COLOR) UserControl.ForeColor = vNewValuePropertyChanged "ForeColor"End PropertyPublic Property Get SelColor() As OLE_COLORSelColor = m_SelBackColorEnd PropertyPublic Property Let SelColor(ByVal vNewValue As OLE_COLOR)m_SelBackColor = vNewValuePropertyChanged "SelColor"End PropertyPublic Property Get Stretch() As BooleanStretch = m_StretchEnd PropertyPublic Property Let Stretch(ByVal vNewValue As Boolean)m_Stretch = vNewValuePropertyChanged "Stretch"DrawListBoxEnd Property'图片Public Property Get Picture() As StdPictureSet Picture = m_picEnd PropertyPublic Property Let Picture(ByVal vNewValue As StdPicture)'End PropertyPublic Property Set Picture(ByVal vNewValue As StdPicture)Set m_pic = vNewValuePropertyChanged "Picture"DrawListBoxEnd PropertyPrivate Sub Timer1_Timer()If ret = -1 ThenIf m_SollbarValue <= 0 Then Exit Subm_SollbarV alue = m_SollbarValue - 1ElseIf ret = -2 ThenIf m_SollbarValue >= m_SollbarValueMax Then Exit Sub m_SollbarV alue = m_SollbarValue + 1End IfDrawSollbar m_SollbarValueMax, m_SollbarValuem_CurIndex = m_SollbarV alueDrawListBoxEnd SubPrivate Sub UserControl_Initialize()m_BorderColor = &H8000000AUserControl.BackColor = vbWhiteUserControl.ForeColor = 0m_SelBackColor = &HFFC0C0m_Stretch = FalseSet m_pic = Nothingm_ItemHeight = 255m_ListCount = 0m_ListIndex = -1m_SollbarValue = 0m_SollbarValueMax = 0m_CurIndex = 0m_Grid = TrueErase m_ListEnd SubPublic Sub Clear()m_ListCount = 0m_ListIndex = -1m_SollbarValue = 0m_SollbarValueMax = 0m_CurIndex = 0Sollbar.Visible = FalseErase m_ListEnd SubPublic Sub RemoveItem(ByVal Index As Long)Dim cut As LongIf Index = -1 Then Exit SubIf m_ListCount = 1 Then: Clear: Exit SubIf Index = UBound(m_List) ThenReDim Preserve m_List(UBound(m_List) - 1) As ListItemsm_ListCount = UBound(m_List) + 1m_ListIndex = -1Exit SubEnd IfFor cut = 0 To UBound(m_List)If cut > Index Thenm_List(cut - 1) = m_List(cut)Elsem_List(cut) = m_List(cut)End IfNext cutReDim Preserve m_List(UBound(m_List) - 1) As ListItemsm_ListCount = UBound(m_List) + 1m_ListIndex = -1End SubPrivate Sub UserControl_Resize()DrawListBoxEnd SubPrivate Sub UserControl_Show()DrawListBoxEnd SubPrivate Sub UserControl_ReadProperties(PropBag As PropertyBag)m_ItemHeight = PropBag.ReadProperty("ItemHeight", m_ItemHeight)m_Grid = PropBag.ReadProperty("Grid", m_Grid)m_ListIndex = PropBag.ReadProperty("ListIndex", m_ListIndex)m_BorderColor = PropBag.ReadProperty("BorderColor", m_BorderColor)UserControl.BackColor = PropBag.ReadProperty("BackColor", UserControl.BackColor) UserControl.ForeColor = PropBag.ReadProperty("ForeColor", UserControl.ForeColor) m_SelBackColor = PropBag.ReadProperty("SelColor", m_SelBackColor)m_Stretch = PropBag.ReadProperty("Stretch", m_Stretch)Set m_pic = PropBag.ReadProperty("Picture", m_pic)End SubPrivate Sub UserControl_WriteProperties(PropBag As PropertyBag)PropBag.WriteProperty "ItemHeight", m_ItemHeight, m_ItemHeightPropBag.WriteProperty "Grid", m_GridPropBag.WriteProperty "ListIndex", m_ListIndexPropBag.WriteProperty "BorderColor", &H8000000APropBag.WriteProperty "BackColor", UserControl.BackColorPropBag.WriteProperty "ForeColor", UserControl.ForeColorPropBag.WriteProperty "SelColor", m_SelBackColorPropBag.WriteProperty "Stretch", m_StretchPropBag.WriteProperty "Picture", m_pic, NothingEnd Sub。
vb程序list列表控件的用法
在Visual Basic(VB)中,List 控件被用来显示一个项目列表。
这个控件可以包含字符串、整数、对象或其他数据类型的项目。
这个控件也提供了多种方法来添加、删除、查找或管理列表中的项目。
以下是List 控件的一些基本用法:1. **添加项目**:你可以使用`AddItem` 方法向List 控件添加项目。
例如:```vbList1.AddItem "Apple"List1.AddItem "Banana"List1.AddItem "Cherry"```2. **删除项目**:你可以使用`RemoveItem` 方法删除List 控件中的项目。
例如:```vbList1.RemoveItem 2 ' 这会删除索引为2的项目```3. **修改项目**:你可以使用`Text` 属性来修改List 控件中的项目。
例如:```vbList1.Text(2) = "Peach" ' 这会修改索引为2的项目为"Peach"```4. **查找项目**:你可以使用`IndexOf` 方法来查找List 控件中的项目。
例如:```vbDim index As Integerindex = List1.IndexOf("Apple") ' 这会返回"Apple" 在List 控件中的索引,如果没有找到则返回-1```5. **响应List 控件的事件**:你可以使用List 控件的某些事件,比如`Click` 或`DblClick` 来响应用户对List 的操作。
例如:```vbPrivate Sub List1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles List1.Click' 这会在用户点击List 控件时执行End Sub```请注意,上述代码示例是针对的,如果你使用的是旧版的VB6,某些语法可能有所不同。
vb列表框ListBox的详细使用方法
vb列表框ListBox的详细使用方法列表框(ListBox)控件表示一个选项清单,用户可能用鼠标选择其中一个或者几个选项。
列表框的特点是:列表框中的项目是通过程序插入到其中的,用户无法向清单中输入数据,当选择其中的项目,并在用户单击一个按钮或者执行某个操作时,由应用程序完成对指定项目的具体操作。
下面这个例子充分说明了列表框的这个特点,并介绍了列表框(ListBox)的常用属性。
为了学习方便,提供的源码已经作了详细的中文注释,看看源码框中的代码:Option Explicit'--------------------------------------' 简单的列表框ListBox的例子'--------------------------------------' 洪恩在线求知无限'--------------------------------------'------名称-------------作用------------' List1、List2 列表框' LefttoRightCmd 移动所选项目到另一个列表框(左到右)' RighttoLeftCmd 移动所选项目到另一个列表框(右到左)' List1MoveCmd 删除列表框List1中所选项目' List2MoveCmd 删除列表框List2中所选项目' List1AddCmd 给列表框List1增加新项目' List2AddCmd 给列表框List2增加新项目' List1ClearCmd 清空列表框List1' List2ClearCmd 清空列表框List2'--------------------------------------'--------------------------------------'————名称————属性设置———'' List1列表框 Sorted属性设为“False”' List2列表框 Sorted属性设为“True”' MultiSelect属性设置为2' 即List2控件中的项目总是排序的'--------------------------------------Private Sub Form_Load()'装载窗体时,给列表中的元素赋值List1.AddItem "China"List1.AddItem "America"List1.AddItem "Japan"List2.AddItem "Soccer"List2.AddItem "Tennis"List2.AddItem "Basketball"End SubPrivate Sub LefttoRightCmd_Click()'将左边列表中所选元素移动到右边列表中If List1.ListIndex >= 0 Then'在右边列表中增加新元素List2.AddItem List1.Text'删除左边列表中的所选元素List1.RemoveItem List1.ListIndexEnd IfEnd SubPrivate Sub List1AddCmd_Click()Dim ListItem As String'ListItem = InputBox("在列表中输入新项目") '向列表中加入新项目If Trim(ListItem) <> "" Then'Trim()作用是清除ListItem字符串内的空格List1.AddItem ListItemEnd IfEnd SubPrivate Sub List1ClearCmd_Click()'清空列表List1.ClearEnd SubPrivate Sub List1MoveCmd_Click()Dim i As Integer'判断列表框是否只有一个项目被选中If List1.SelCount = 1 ThenList1.RemoveItem List1.ListIndexElseIf List1.ListCount > 1 Then'删除列表框中的所选中的多个项目For i = List1.ListCount - 1 To 0 Step -1'ListCount返回列表框中的项目总数'ListCount-1是列表框中最后一个项目的索引号'判断该项目是否被选中,Selected()返回布尔值If List1.Selected(i) Then'删除索引号为i的项目List1.RemoveItem iEnd IfNextEnd IfEnd SubPrivate Sub List2AddCmd_Click()'定义变量,以接收输入的字符串Dim ListItem As StringListItem = InputBox("在列表中输入新项目") If Trim(ListItem) <> "" Then'将字符串增加到列表中List2.AddItem ListItemEnd IfEnd SubPrivate Sub List2ClearCmd_Click()'清空列表List2.ClearEnd SubPrivate Sub List2MoveCmd_Click()Dim i As Integer'判断所选元素是否只有一个If List2.SelCount = 1 ThenList2.RemoveItem List2.ListIndex'如果所选元素大于1,则按下列操作进行ElseIf List2.ListCount > 1 ThenFor i = List2.ListCount - 1 To 0 Step -1If List2.Selected(i) ThenList2.RemoveItem iEnd IfNext iEnd IfEnd SubPrivate Sub RighttoLeftCmd_Click()Dim i As Integer'判断选中的元素有几个If List2.SelCount = 1 ThenList1.AddItem List2.TextList2.RemoveItem List2.ListIndex'当选中的元素大于一个时ElseIf List2.SelCount > 1 ThenFor i = List2.ListCount - 1 To 0 Step -1'如果该元素被选中,则将其从右边移至左边If List2.Selected(i) ThenList1.AddItem List2.List(i)List2.RemoveItem iEnd IfNext iEnd IfEnd Sub(源程序下载)这个例子包含一个窗体,窗体中有两个列表框(List1、List2)和八个按钮,界面如下:窗体(FormListBox)我们首先新建一个标准的EXE工程,添加一个窗体,并把列表框和按钮控件添加到窗体上。
VB常用控件
4.访问键 访问键是通过键盘来访问控件的。例如设置两
个按钮的属性为: Caption= "关闭(&C) " Caption= " &Exit "
则运行时可分别按Alt+C或Alt+E,相当于分别单击 两个按钮。
5.容器 窗体、框架和图片框等都可以作为其他控件的容器。
移动容器,容器中的控件也随之移动。容器中控件的 Left和Top属性值是指其在容器里的位置。
text1textlist1texttext1textlist1text常用控件常用控件常见控件的默认属性控件名控件名默认属性默认属性控件名称控件名称默认属性默认属性控件名称控件名称默认属性默认属性图片框图片框picturepicture组合框组合框texttext文件列表框文件列表框filenamefilename标签标签captioncaption列表框列表框texttext形状形状shapeshape文本框文本框texttext水平滚动条水平滚动条valuevalue线条线条visiblevisible框架框架captioncaption垂直滚动条垂直滚动条valuevalue图像框图像框picturepicture命令按钮命令按钮valuevalue时钟时钟enabledenabled数据数据captioncaption复选框复选框valuevalue驱动器列表框驱动器列表框drivedrive单选按钮单选按钮valuevalue目录列表框目录列表框pathpath常用控件常用控件焦点焦点在窗体上任何时候用户都只能操作其中的一个控件对象这个在窗体上任何时候用户都只能操作其中的一个控件对象这个被操作的对象称它获得焦点
第4章 ·常用控件
例 4 - 1 在一窗体上通过命令改变图片框的AutoSize 属性值,观察所装载图片的显示效果。
Vb 常用标准控件
【范例4-11】兴趣爱好选取窗体。
操作步骤如下: 1、在窗体上新建2个标签、2个列表框、4个命令按钮,调整它们的位 置及大小,并按表4-15设置属性
2、编写代码如下: Private Sub Command1_Click() If List1.ListIndex <> -1 Then List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End If End Sub
可响应的事件与窗体基本相同。
主要属性:
◦ ◦ ◦ ◦ ◦ ◦ ◦ Shape BorderColor BorderStyle BorderWidth BackStyle FillColor FillStyle
10
用户用鼠标单击命令按钮,将执行一条命令,但具 体的动作则由相应的事件过程的程序代码决定。 (1)属性 Caption Cancel(取消属性):“True”时按[ESC]键等同于单击 该按钮,一般“取消”按钮的cancel设置为“True”. Default(缺省属性):当此属性为“True”时,此按钮 被设为焦点,按回车键等同于按此按钮。一般将“确定” 按钮的Default属性设为“True”。 Enabled Style Picture等 (2)事件: 最基本也是最重要的事件:单击Click
【范例4-11】兴趣爱好选取窗体。
Private Sub Command2_Click() For i = 0 To List1.ListCount - 1 List2.AddItem List1.List(i) Next List1.Clear End Sub Private Sub Command3_Click() If List2.ListIndex <> -1 Then List1.AddItem List2.Text List2.RemoveItem List2.ListIndex End If End Sub
VB常用控件介绍
VB常用控件介绍在Visual Basic (VB)中,控件是构建图形用户界面的基本元素。
它们允许用户与应用程序进行交互,并显示和接受数据。
以下是VB中常用的控件的介绍:1. Label控件:用于在窗体上显示文本。
可以设置文本的颜色、字体、大小等属性。
2. TextBox控件:用于接收用户的输入文本。
可以用于输入单行或多行文本。
4. ListBox控件:用于显示一个列表,用户可以从中选择一个或多个选项。
5. Button控件:用于触发一个事件或进行一些操作。
可以设置按钮的文本、样式和大小等。
6. RadioButton控件:用于提供一组互斥的选项。
用户只能选择其中的一个选项。
7. CheckBox控件:用于提供一组独立的选项。
用户可以选择其中的一个或多个选项。
8. PictureBox控件:用于显示图像。
可以从文件或代码中设置图像。
9. Timer控件:用于定时触发事件。
可以设置定时器的间隔时间。
10. Progress Bar控件:用于显示操作的进度。
可以根据进度的百分比设置进度条的值。
11. ScrollBar控件:用于提供滚动的功能。
可以用于水平或垂直的滚动。
12. ListView控件:用于显示一个可自定义的列表。
可以显示图标、列表、详细信息等视图。
13. TreeView控件:用于显示一个树形结构的列表。
可以展开和折叠节点。
14. MenuStrip控件:用于创建菜单。
可以设置菜单项和子菜单。
16. DateTimePicker控件:用于选择日期和时间。
可以设置日期和时间的格式。
17. OpenFileDialog控件:用于打开文件对话框。
可以选择打开的文件。
18. SaveFileDialog控件:用于保存文件对话框。
可以选择保存的文件和路径。
19. PrintDialog控件:用于打印对话框。
可以选择打印的设置和打印的内容。
20. ColorDialog控件:用于颜色选择对话框。
可以选择颜色。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
属性:
指示一个 Shape 控件的外观 边框样式。 用来填充 Shape 控件生成的圆和方框的模式 用于填充形状的颜色 返回或设置控件边框的宽度。
18、直线控件 属性: BorderStyle BorderWidth BorderColo 决定线条的类型 返回或设置控件边框的宽度。 决定线条的颜色
19、公共对话框 控件
当前的盘驱动器符 改变了Drive属性后触发该事件 单击盘驱动器列表框 时,触发该事件
当前目录(当前路径) 改变了Path属性后触发该事件。
文件列表框内所显示文件所在目录的路径 文件列表框中文件的显示模式,默认值为“*.*” 被选中的文件名 单击文件列表框中的某个文件时触发该事件。 双击文件列表框中的某个文件时触发该事件。
属性:
Action
被显示的对话框的类型: 1 显示“打开”对话框。 2 显示“另存为”对话框。 3 显示“颜色”对话框。 4 显示“字体”对话框。 5 显示“打印”对话框。 6 运行 WINHLP32.EXE。 显示 CommonDialog 控件的“打开”对话框。等效于 CommonDialog1.Action = 1 显示 CommonDialog 控件的“另存为”对话框。等效于 CommonDialog1.Action = 2 显示 CommonDialog 控件的“颜色”对话框。等效于 CommonDialog1.Action = 3 显示 CommonDialog 控件的“字体”对话框。等效于 CommonDialog1.Action = 4 显示 CommonDialog 控件的“打印”对话框。等效于 CommonDialog1.Action = 5
Caption
框架的标题。
事件: 方法
10、组合列表框 属性: 事件: 方法: 11、滚动条
将 TextBox 控件和 ListBox 控件的特性结合在一起,不能多选,所以没有 MultiSelect和Selected属性,其余属性、方法、事件同ListBox和TextBox.
属性:
Value Min Max SmallChange LargeChange Change
1、窗体Form BackColor Caption Height Width ForeColor FontName Left Top Visible Load Click DblClick Print Cls Show Hide Move 标题 高度 宽度 在对象里显示图片和文本的前景颜色 显示文本所用的字体 对象内部的左边与它的容器的左边之间的距离 返回或设置对象的内顶部和它的容器的顶边之间的距离。 返回或设置一指示对象为可见或隐藏的值。 此事件是在一个窗体被装载时发生 此事件是在一个对象上按下然后释放一个鼠标按钮时发生 当在一个对象上按下和释放鼠标按钮并再次按下和释放鼠 标按钮时,该事件发生 在窗口中显示文本 清除运行时 Form 所生成的图形和文本 用以显示 MDIForm 或 Form 对象 用以隐藏 MDIForm 或 Form 对象,但不能使其卸载。 用以移动 MDIForm、Form 或控件
12、图片框 属性: Picture AutoSize Align 设置图片框的的图像 当取True时,图片框根据图片调整自身大小 决定图片框在窗体中的位置,默认0。
13、图像框 属性: Stretch Picture True时,装入的图像能自动缩放以适应图像框的大小 指定显示的图像来源
14、驱动器列表 框 Drive 属性: Change 事件: Click 15、目录列表框 Path 属性: Change 事件: 16、文件列表框 属性: 事件: 17、形状控件 Shape BorderStyle FillStyle FillColor BorderWidth Path Pattern FileName Click DblClick
事件: 5、定时器 属性:
Interval Enabled
表示时钟间隔。单位:毫秒。 (True|False)表示定时器可否使用,默认True。
6、复选框控件 属性: 事件: 7、单选钮控件 属性: 事件: 8、框架控件 属性: 9、列表框 控件 List ListIndex 属性: Text ListCount Selected MultiSelect SelCount Click DblClick AddItem RemoveItem Clear 列表框中项目内容,以数组形式存放。 列表框中当前被选中项目的下标; 列表的第一项的 ListIndex 是0。 列表框中的当前项内容(只读) 列表框中项目的总数。 列表框中项目的选择状态(True|Flase),以数组形式存放。 列表框是否可多选(0|1|2)。 列表框中当前被选中的条目数。 一般在应用程序中不编写ListBox的Click事件。 双击某项目时触发。 添加项目内容 删除项目 删除所有项目 Caption Value Click 单选框标题文字 单选框是否被选中(True/False) 此事件是在一个对象上按下然后释放一个鼠标按钮时发生 Caption Value Click 复选框标题文字 复选框是否被选中(0/1) 此事件是在一个对象上按or 方法 ShowColor ShowFont ShowPrinter 20、Data 控件 Connect DatabaseName 属性: RecordSource Recordset UpdateRecord UpdateControl s Refresh
连接的数据库类型 返回或设置 Data 控件的数据源的名称及位置。 Data控件的基本表、SQL语句。 由 Data 控件的属性所定义的 Recordset 对象。 保存被连结控件的当前值。 从一个 Data 控件的 Recordset 对象中取得当前记录,并且 在连结某个 Data 控件的控件中显示适当的数据。 强制全部重绘一个窗体或控件
属性:
事件:
方法
2、按钮 Caption Enabled 属性: Default 事件: 3、标签 属性: 4、文本框控件 MultiLine ScrollBar 属性: MaxLength PassWordChar Locked Change KeyPress 支持多行显示(True|False) 文本框带滚动条(0-None| 1-Horizontal|2-Vertical|3Both) 能输入字符数的最大数量 设置口令显示字符 锁定文本内容(True|False) 文本框的内容发生变化,立即触发该事件 当文本框获得焦点时,任何键盘的按键触发该事件 Caption AutoSize 属性表示标签的文字内容 以决定控件是否自动改变大小以显示其全部内容。 Visible Click 标题 用来确定一个窗体或控件是否能够对用户产生的事件作出 反应。 以确定哪一个 CommandButton 控件是窗体的缺省命 令按钮。 返回或设置一指示对象为可见或隐藏的值 此事件是在一个对象上按下然后释放一个鼠标按钮时发生
方法
事件:
Scroll
滚动条中滑块(滚动框)的位置 滑块到达最左端或最上端的Value值 滑块到达最右端或最下端的Value值 当用户单击滚动箭头时,滚动条的 Value 属性值的改变量 当用户单击滑块和滚动箭头之间的区域时,滚动条的 Value 属性值的改变量 改变滚动条的Value属性值,触发Change事件。 移动 “滑块” 时连续触发Scroll事件,松开鼠标后Scroll事 件停止,触发Change事件。