VB窗体和常用控件

窗体

  1. 窗体(属性)

常用属性名

功能

说明

Name

设置对象的名称

所有控件都有

Caption

设置对象的标题

Top

窗体上边离屏幕上边的距离

Left

窗体左边离屏幕左边的距离

Width

对象的宽度

Height

对象的高度

Enabled

决定对象是否可用

不可用时显示为灰色

Visible

决定对象是否可见

BackColor

设置对象的背景色

ForeColor

设置对象的前景色

如字体颜色

Font

设置对象的字体

Name、Size、Bold、Italic、Underline、Strikethru

Picture

设置窗体背景图片

对象名.Picture=LoadPicture(“图片路径”)

MaxButton

决定窗体上的最大化按钮是否可用

如果两者都不可用,则只会出现关闭按钮

MinButton

决定窗体上的最小化按钮是否可用

CotrolBox

设置窗体的标题栏是否显示控制框

BorderStyle

窗体边界样式

6种边框样式(0-5)

  1. 窗体(事件)
  2. 窗体(方法)

练习:窗体、窗体事件、四季练习

一般控件的使用

  1. label(标签)

常用属性名

功能

说明

Caption

设置标签上显示的文字

Alignment

设置标签上文字对齐方式

值为0-2

AutoSize

决定标签大小是否自动适应文字

设为True为自动适应

配色方案练习

  1. TextBox(文本框)

常用属性名

功能

说明

Alignment

设置文本的对齐方式

值为0到2

Text

文本框里显示的内容

MultiLine

是否允许多行显示

ScrollBars

设置是否显示滚动条

MultiLine为true,值为0到3

 PasswordChar

设置密码

Locked

是否允许输入

只读属性

SelStart

选定的正文开始位置,起始为0

SelLength

选定的正文长度

SelText

选定的正文内容

常用事件:Change

常用方法名:SetFocus(设置焦点到文本框上)

设置访问键:确定(&Y)(Alt+Y触发单击事件)

练习:替换、简易文本编辑器、登录  

  1. CommandButton(命令按钮)

常用属性名

功能

说明

Caption

设置按钮上显示的文字

Style

设置按钮的样式

Picture

设置按钮的背景图案

只有Style为1时才起作用

Default

设置是否为默认确定按钮

按Enter键触发Click事件

Cancel

设置是否为默认取消按钮

按ESC键触发Click事件

 常用事件:Click(鼠标单击,不支持双击DbClick事件)

 设置访问键:确定(&Y)(Alt+Y触发单击事件)

 练习:你好、控件的显示与隐藏

  1. Timer(时钟)

常用属性名

功能

说明

Interval

时钟触发的频率

单位为毫秒

Enabled

是否可用

通常用作时钟的开关

常用事件名

触发条件

Timer

按拟定的时间间隔由系统自动触发Timer事件,时钟唯一事件

注意:时钟不工作有两种可能

  1. 将时钟的Enabled属性设置为False,这种方法最常用。
  2. 将时钟的Interval属性设置为0(默认)。

练习:数字时钟、计时器(若加一个复位按钮)、会动的文字、加油

选择类控件

  1. OptionButton(单选按钮)

常用属性名

功能

说明

Value

设置是否被选中

True为选中,默认为False

Style

设置样式

同命令按钮

事件:Click

单选类控件数组创建方法、有什么特点?  

单选类控件添加到Frame框架的几种方法

练习:评论、评论(用控件数组完成)、时钟程序、求奇偶数的和

  1. CheckBox(检查框,也称复选框)

常用属性名

功能

说明

Value

设置是否被选中

未选中为0,选中为1,选中灰为2

Style

设置样式

同单选按钮

事件:Click

练习:俱乐部、俱乐部(用控件数组完成)7、1、3

  1. ListBox(列表框)

常用属性名

功能

说明

List

列表项

对象名.List(i)

ListIndex

当前被选中的列表项索引值

当前选中列表项的索引值,0开始,-1未选中任何列表项

ListCount

列表框中列表项的总项数

Text

当前被选中的列表项内容

List1.Text

Style

设置样式

0-2

当前选中项:List1.ListIndex

事件:Click

常用方法名

功能

AddItem

添加列表项

List2.AddItem List1.List(List1.ListIndex)

RemoveItem

删除列表项

List2.RemoveItem List2.ListIndex

Clear

清除所有列表项

List1.Clear

 练习:删除、名单统计、课程选择、计算机比赛选拔、名单统计(0)、产生右移(多选)

  1. ComboBox(组合框)

(Style属性)

Style

0

1

2

样式

下拉式组合框

简单组合框

下拉式列表框

说明

可输入、可下拉列表选择

无下拉箭头,可输入、可选择

不可输入、可下拉列表选择

常用事件

Click、DropDown(单击箭头)

DbClick

Click、DropDown

 练习:组合列表、加油站计费器

  1. HScrollBar(水平滚动条)与VScrollBar(垂直滚动条)

常用属性名

功能

说明

Value

设置或返回滑块位置所对应的值

Min≦Value≦Max

Min

滚动条左端(水平)或上端(垂直)的值

默认为0

Max

滚动条右端(水平)或下端(垂直)的值

默认为32767

LargeChange

设置点击滑块与两端按钮之间的空白区域时滑块移动的距离(值)

默认为1

SmallChange

设置点击两端按钮时滑块移动的距离

默认为1

怎么控制滚动条中滑块的位置?

常用事件名

触发条件

Scroll

当拖动滑块时触发该事件

 Change

当Value值发生变化时触发该事件

练习:字体大小、图片大小、四季图片、运动

  1. Picture与Image

属性窗口

Picture(图片框):

        AutoSize   True:图片框调整大小以适应图片

                  False:则图片将被剪切(只有一部分图片可见)

Image(图像框):

        Stretch    True:图片调整大小以适应图像框

                  False:图像框调整大小以适应图片

代码

加载图片   相对路径:对象名称.Picture = LoadPicture(App.Path & "\图片名.jpg")      

                    (图片路径和程序在同一个文件夹下)

           绝对路径:对象名称.Picture = LoadPicture()

练习:四季

语言基础

一、数据类型(教室上)

  VB提供了11种基本数据类型:

   

存储空间

范围

数值数据型

字节型

Byte

1个字节

0-255

整型

Integer

%

2个字节

-32768-32767

长整型

Long

&

4个字节

-2147483648-2147483647

单精度型

Single

4个字节

-3.402823E38-3.402823E38

双精度型

Double

#

8个字节

-1.79769313D308-1.79769313D308

货币型

Currency

@

8个字节

——

逻辑型

Boolean

2个字节

True与False

日期型

Date(time)

8个字节

01/01/100—12/31/9999

字符型

String

$

与字符长度有关

0-65535个字符

对象型

Object

4个字节

任何对象引用

变体型

Variant

根据需要分配

——

注意

  1. 逻辑型数据只有True和False两个值。在特殊情况下,逻辑型数据要转换成整型时,True转为-1,False转为0;若将其他类型转换成逻辑型时,非0数转换为True,0转换为False。
  2. 变体(Variant)是一种特殊的数据类型,是所有未定义变量的默认数据类型,它对数据的处理完全取决于程序上下文的需要,为VB的数据处理增加了智能性。它包括数值型、日期型、对象型、字符型等数据类型。

练习:零或非零

二、常量和变量(教室上)

常量:

在运行过程中其值始终保持不变的数据称为常量。常量可以分为直接常量和符号常量两种。

直接常量:在程序中直接给出值的数据称为直接常量,它包括数值常量、字符常量、逻辑常量、日期常量。

符号常量:

系统符号常量:如vbRed

用户自定义符号常量:用Const来声明

变量:

运行期间其值可以改变的数据称为变量。

命名规则:

以字母开头,由字母、数字或下划线组成,长度不超过255个字符,大小写不区分。

‚不能与VB中的保留字重名。

ƒ最后一个字符可以是VB的类型符.     .

  量的定义:

用语句进行显示声明,如Dim a As Integer

‚类型说明符定义,如Dim a%

ƒ隐式声明:编写程序时,不声明变量直接使用,系统临时为新变量分配存储空间并使用。所有隐式声明的变量都是Variant数据类型。

练习:圆、

、运算符和表达式

在VB中,表达式由运算符和操作数组合而成。运算符是表示实现某种运算的符号。运算符可以分为算术运算符、字符串运算符、关系运算符和逻辑运算符四类。

运算符:

算术运算符

运算符

含义

优先级

示例(a=3)

结果

^

乘方

1

a^2

9

-

负号

2

-a

-3

*

3

a*a*a

27

/

3

10/a

3.333333333333

\

整除

4

10\a

3

Mod

取余

5

10 Mod a

1

+

6

10+a

13

-

6

a-10

-7

说明:算术运算符两边的操作数应该是数值型,若是数字字符或逻辑型,则强制转换为数值类型后再运算。

练习:四则运算器、挑选偶数

字符串运算符

运算符

作用

区别

示例

结果

&

将两个字符串拼接起来

先将操作数转换成字符,然后再连接

12 & 34

1234

12 & "ab"

12ab

+

两者都为字符串,直接连接

"12" + "34"

1234

一个为数字字符串,一个为数字型,将字符串转换为数字型,然后算术加法运算

123 + 45

168

一个为非数字字符型,一个为数值型,则出错

"ab" + 34

出错

说明:使用运算符“&”时,变量与运算符“&”之间应加一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误。

关系运算符

运算符

含义

示例

结果

=

等于

"ABCDE"="ABR"

False

>

大于

"ABCDE">"ABR"

False

>=

大于等于

"bc">="大小"

False

<

小于

23<3

False

<=

小于等于

"23"<="3"

True

<>

不等于

"abc"<>"ABC"

True

说明:如果两个操作数都是数值型,则按其大小比较。

      如果两个操作数都是字符型,则按字符的ASCII码值从左到右一一比较。

      汉字字符大于西文字符。

      关系运算符的优先级相同。

      

练习:流量套餐  

逻辑运算符

运算符

含义

优先级

说明

示例

结果

Not

取反

1

当操作数为假时,结果为真

Not F

T

Not T

F

And

2

两边都真才 为真

T And T

T

F And F

F

T And F

F

F And T

F

Or

3

两边都假才为假

T Or T

T

F Or F

F

T Or F

T

F Or T

T

练习:海伦、

优先级:算术运算符>字符运算符>关系运算符>逻辑运算符

  • 常用内部函数
  1. 格式和说明

   注意参数的个数及类型

   注意函数的定义域和值域。如Sqr(x)函数中的x必须大于等于0,Rnd()函数返回(0,1](包括0和不包括1)之间的双精度随机数。

常用函数

函数名

功能

示例

结果

Abs(x)

求x的绝对值

Abs(-2.5)

2.5

Rnd(x)

产生一个在[0,1)区间均匀分布的随机数,每次的值都不同

Rnd(x)

0-1之间的数

Int(x)

求小于或等于x的最大整数

Int(-3.5)

-4

Fix(x)

求x的整数部分

Fix(-3.5)

-3

Sqr(x)

求平方根

Sqr(9)

3

转换函数

函数名

功能

实例

结果

Asc(S)

字符串C中第一个字符的ASCII码

Asc("A")

65

Chr(N)

返回ASCII码值所代表的字符

Chr(65)

Val(S)

数字字符转换为数值

Val("123AB")

123

Str(N)

数值转换为字符串(正数转换后有前导空格)

Str(14)

" 14"

Log(N)

求N的自然对数,N>0

Log(2)

0.6931471

注意:(1)Asc("Abcd")值为:65(只取首字母的ASCII值)

     (2)Val("abc123")值为:0,Val("1.2sa10")值为1.2,Val()函数只将最前面的数字字符转换为数值。

字符串函数

函数名

实例

结果

Left(S,N)

Left("ABCDEFG",3)

"ABC"

Mid(S,N1,N2)

Mid("ABCDG",2,3)

"BCD"

Right(S,N)

Right("ABEFG",3)

"EFG"

Len(S)

Len("AB高等")

4

日期函数

函数名

说明

实例

结果

Date[()]

返回系统日期

Date()

2017-9-12

Day(C|N)

返回日期代号(1-31)

Day("2011,05,01")

1

Month(C|N)

返回月份代号(1-31)

Month("2011,05,01")

5

Time[()]

返回系统时间

Time

11:26:53

Year(C|D)

返回年份号(1753-2078)

Year(36)

1900

  • 数据的输入和输出

数据的输入:InputBox函数输入数据

           x=InputBox("请输入半径","计算圆的面积","20")

           注意:InputBox函数返回值为字符串,所以,此函数常跟Val联合使用。x,y为InputBox框左上角距离屏幕左侧与上侧的距离。

数据的输出:MsgBox函数

            x=MsgBox("圆的面积为60","按钮","计算圆的面积")

                                    

                                 第二个参数

                                      

               按钮数目值  图标类型值  默认按钮值   模式值

 (一)、图标数目相应值

按钮数目

0

1

2

3

4

5

  • 、图标类型相应的值

图标

16

32

48

64

(三)、按钮返回值与按钮的对应关系

返回值

内部常量

含义

返回值

内部常量

含义

1

vbOK

确定

5

vbIgnore

忽略

2

vbCancel

取消

6

vbYes

3

vbAbort

终止

7

vbNo

4

vbRetry

重试

注意:函数返回值为用户选择的按钮的值。

数据的输出:MsgBox命令(无返回值)

            MsgBox"圆的面积为60","按钮","计算圆的面积"    

练习:选套餐,vb安装

练习:随机偶数、倒序

  • VB程序基本结构

If 语句

格式一:If <条件> Then <语句>    行If语句不用结束语句

格式二:If <条件> Then           块IF语句

            语句一

        Else

            语句二

        End If

格式三:If <条件1> Then

           <语句1>

        ElseIf <条件2> Then

           <语句2>

        ElseIf <条件3> Then

           <语句3>

               

        [Else

           <语句n>]

        End If

练习:

大巴车、网店、QQ、成绩转换

Select Case 语句

格式:Select Case 表达式

      [Case 表达式列表1

<语句块1> ]

      [Case 表达式列表2

<语句块2> ]

     ...

      [Case Else

<语句块n> ]

      End Select

注意:

  1. 表达式可以是数值表达式或字符串表达式,通常为变量。
  2. Case 1,2,3,"a","b","c"

   Case 1 To 10,"A" To "E"

   Case Is>0

练习:

所得税、月份天数、年月份天数、年月日、十二生肖

For....Next 循环(计数循环)

格式:  For <循环变量>= <循环变量初值> To <循环变量终值> [Step<步长>]

                [<循环体语句序列>]

                [Exit For]

        Next [<循环变量>]

功能:

说明:步长缺省时,则默认步长为1,循环步长不能为0,否则会“死循环”

练习:随机求和1,2

WhileWend循环(条件循环)

注意:主要用于循环次数预先不能确定的循环结构。

格式:While  <条件>

      [<语句序列>]

      Wend

功能:按照条件是否成立执行循环。

练习:求1-100的和、猜数 、年龄

DoLoop循环(条件循环)

格式1:Do [While|Until 条件]

             [语句组]

             [Exit Do]

        Loop

注意:

(1)Do循环不但可以用于循环次数预先不能确定的循环,还可以根据循环条件决定是否结束循环。

(2)当While条件成立,或当Until条件不成立时,执行语句。(关键字While表示条件为真时循环执行,而Until表示条件为假时执行)

格式1:Do

             [语句组]

             [Exit Do]

        Loop  [While|Until 条件]

注意区别:格式2一定会执行1次循环体内的语句序列,而格式1在测试条件后,根据条件情况执行循环体。

练习:s10,存钱  

一维数组的定义和使用

声明: Dim  a%(1 To 5) 或 Dim  a(1 To 5) As Integer

       Dim  a%(5) 或  Dim  a(5) As Integer

      ƒ Dim  A

         A=Array(1,2,3,4,5)

      动态数组(书P73)

注意

  1. 以上三种声明方式的异同

练习:sz列表、最值问题、sz最值问题

  • 常见算法

解析法:利用数学计算实现问题的求解。

练习:鸡兔同笼、一元二次方程求解

穷举法(枚举法):将所有的方案都一一测试,找出符合要求的方案。

练习:挑选偶数、完备数

特殊数及素数:

  1. 完备数:指其各因子之和等于其本身的正整数。1、2、3是6的因子,6=1+2+3,所以6就是完备数。
  2. 回文数:回文数就是对称数,例如:121
  3. 素数:又称质数,是指除了1和该数本身之外,不能被其他任何整数整除的数,例如7,它不能被2,3,4,5,6整除。
  4. 水仙花数:指一个三位数其各位立方之和等于它本身。
  5. 同构数:是指一个数出现在它的平方数的右端。例如:5是25的右端,5就是同构数,25是625的右端,25也是同构数。

练习:数字分离、水仙花数、回文数、素数和同构数。

打印图形:

一般算法

For i=1 To n    打印的行数

  Print Tab();  每行打印的位置如Print Tab(9);在第九列输出

  For j=1 To m  每行中打印的个数

打印内容;

  Next j

  Print         换行

Next i

排序:

冒泡排序:

概念:首先从数组的第一项(j)与下一项(j+1)进行比较,若下一项值比较小,则交换这两个位置的数据,使大的数在后方,这种操作反复进行直至数据组末尾,这样最后一个数据就是最大值了,然后再回到数组开头重复处理

算法:

For i=1 to n-1

   For j=1 to n-i

      If a(j)>a(j+1) Then

          T=a(j):a(j)=a(j+1):a(j+1)=T

      End If

   Next j

Next i

以69、 56、 18和10为例

69

第一趟

56

第二趟

18

第三趟

10

56

18

10

18

18

10

56

56

10

69

69

69

排序过程:

         第一轮:第一次:69   56   18   10    a(1)>a(2) 怎么把a(1)和a(2)的值进

                         a(1) a(2) a(3) a(4)            行交换?

        

                 第二次:56   69   18   10    a(2)>a(3) 怎么把a(2)和a(3)的值进

                         a(1) a(2) a(3) a(4)            行交换?

            

                 第三次:56   18   69   10    a(3)>a(4) 怎么把a(2)和a(3)的值进

                         a(1) a(2) a(3) a(4)            行交换?

      

                 结  果:56   18   10   69    

                         a(1) a(2) a(3) a(4)

         问:第一轮比较了几次?第一轮的比较有什么作用?

         第二轮:第一次:56   18   10   69

                         a(1) a(2) a(3) a(4)

                 第二次:18   56   10   69

                         a(1) a(2) a(3) a(4)

                 结  果:18   10   56   69

                         a(1) a(2) a(3) a(4)

         第三轮:第一次:18   10   56   69

                         a(1) a(2) a(3) a(4)

                 结  果:10   18   56   69

                         a(1) a(2) a(3) a(4)

提问: 请回忆一下最大三位数那一题.....                

选择排序:

选择排序是用了求数组中最小值及其位置的算法来实现排序的。

步骤:n个元素中找出最小的那个元素,记录下标,让这个元素与第一个元素比较,最小者是否为第一个元素,若不是则交换;第二轮从n-1个数据元素中找出最小的那个元素,记录它的下标,让这个元素与第二个元素比较,最小者是否为第二个元素,若不是则交换...以此类推。经过n-1轮的选择排序后,原来无序的序列就变成一个有序的序列。

一般算法:

For i=1 to n-1

p=i

For j=i+1 to n

    If a(p)>a(j) Then p=j

Next j

If p<>i Then

   T=a(p):a(p)=a(i):a(i)=t

End If

Next i

以69、 56、 18、 10为例

69

第一趟

10

第二趟

10

第三趟

10

56

56

18

18

18

18

56

56

10

69

69

69

   

排序过程:

                  假设第一个位置的69为最小值,记录下标p

第一轮:第一次:69   56   18   10     69与56 二者比较56为最小值,记录下标

      a(1) a(2) a(3) a(4)

第二次:69   56   18   10     56与18 二者比较18为最小值,记录下标

      a(1) a(2) a(3) a(4)

第三次:69   56   18   10     18与10 二者比较10为最小值,记录下标

      a(1) a(2) a(3) a(4)

结  果:10   56   18   69  当前最小值与之前假设的最小值相等吗?不相等则

      a(1) a(2) a(3) a(4) 进行交换。

      假设最小值为?记录下标

第二轮:第一次:10   56   18   69     56与18 二者比较18为最小值,记录下标

                a(1) a(2) a(3) a(4)

        第二次:10   56   18   69     18与69 二者比较18为最小值,记录下标

                a(1) a(2) a(3) a(4)

        结  果:10   18   56   69     把最小值与之前假设的最小值进行交换

                a(1) a(2) a(3) a(4)  

                假设最小值为?记录下标

第三轮:第一次:10   18   56   69     56与69 二者比较56为最小值,记录下标

      a(1) a(2) a(3) a(4)

        结  果:10   18   56   69     把最小值与之前假设的最小值进行交换

                a(1) a(2) a(3) a(4)

一、VB控件集,控件集内含ListView、漂亮按钮、下拉列表、TAB窗体选项卡、树形菜单控件窗体滑动菜单、分组菜单,可折叠展开的菜单等。以前就更新过,现在修正了不少控件中的小错误,更接近完善了,相信这些控件对于从事vb6编程的朋友来说,是相当实用的。 二、1, clistbar.zip 超级的列表框,你一定不会失望(137KB) 2, axtree.zip 用惯了treeview控件的朋友可以试一试这款axtree控件,它增添了更多的控制(129KB) 3,richedit 利用RichText实现的编辑器,提供了修改字体,打印,查询等功能(4KB) 4,exptrocx.zip 实现explorer风格的树型目录的activex控件(1191KB) 5,txtsrch 在Text中实现快速增量查询(5KB) 6,exproplist.zip 建立一个如同vb里属性栏一样的东东,不仅形似,神也似(137KB) 7,combosrc.zip 在 COMBO 中的增量查询(2KB) 8,escombo.zip 为COomBo控件加强版,有近似关键字搜索功能(27KB) 9,sblist20.zip 它允许你用各自颜色(162KB) 10,wordwrap.zip 在 TextBox 中自动换行(2KB) 11,chklst.zip Check Box 和 List的结合体(101KB) 12,aresbuttonpro.zip aresbutton是一个显示图形按钮的activex控件, 主页地址http://const.ricor.ru/~art/aresbutton(320KB) 13,kenjLV1.zip ListView的API效果演示(11KB) 14,cbuttonr.zip 扩充的按钮控件(24KB) 15,csplitba.zip 在窗体里随意建立分隔条(11KB) 16,gbarocx.zip 进度条(171KB) 17,ccrpprg.zip 一个进度条的控件,可以有多种形态供你选择(142KB) 18,chklsb25.zip 它提供了类似 word 和 excel 中的内含检查框 ( checkbox)的列表框(listbox)。在这个控制中,每一个条目的字体、颜色、使能状态和选中状态都可以被单独设置。这个控制也支持3d外观、图片条目和定制的检查框符号(167KB) 19,as97ppup.zip 一种可以弹出的按钮,具有多种形态和功能(32KB) 20,slidrc.zip 形状类似于收音机音量控制的滚动条(296KB) 21,TracBar.zip 滚动条模块,与 VB 的滚动条比较, 该模块支持动态生成, 支持触发消息(7KB) 22,srchlist.zip 在 list 控件里进行增量查询(3KB) 23,devfltbt.zip 可爱的按钮(141KB) 24,treedrag.zip TreeView 中节点拖动、增加、删除等功能演示(8KB) 25,dirview.zip 装入整个 C 盘目录到 TreeView(5KB) 26,msghook.exe 专门用来截取Windows消息的控件(114KB) 27,led.ZIP 象电子表一样显示数字的控件(17KB) 28,splitbardemo.ZIP 无须任何代码,即可随意拖动该控件,有水平和垂直两种样式。支持 MouseOver 事件(拖动结束)(11KB) 29,hotkeydemo.ZIP 该控件可以为你的应用程序添加一个系统级的热键,通过HotkeyPressed事件来处理热键的按下后的工作。(15KB) 30,pwdboxdemo.ZIP 每当用键盘输入一个字符时,将显示出随机个数的密码字符(31KB) 31,c5.zip 防火墙控件(39KB) 32,c6.zip 列出Windows运行的所有程序,并终止其运行的控件(18KB) 33,taskbar.zip 一个日期控件(有源代码)(6KB) 34,encrypt.zip 加密/解密字符串的控件(46KB) 35,activelock.zip
表格控件总览:   在VB开发环境中,表格控件在界面开发元素中占有重要的地位。它不仅有外观整洁、表达形式规范的优点,而且更重要的是它较高的信息表现率(就是相对于其他控件来说能够表达更多的信息),随着信息时代的到来,它的应用将更加的广泛。    那么在VB平台下,如何操作这一功能强大的控件元素呢?事实上我们知道,VB平台下面的表格控件是相当丰富的,总结下来提供了4种类型:Microsoft Data Bound grid Control、Microsoft Datagrid Control、Microsoft Flexgrid Control、Microsoft Hierarchial Flexgrid Control. 这四种表格各有其特点,下面我们一一讨论。   1. Microsoft Data Bound grid Control   此控件主要用于数据绑定(可以不绑定,但是因为不提供对单个cell的控制支持,所以实际上这样做是不经济的)。具体说来,就是数据源比较固定的情况下可以使用这种控件。   具体使用方法是设定此控件的datasource属性,就可以不用编写任何代码就可以显示该数据源所指向的记录数据。比如可以将datasource设置为一个data控件,而data控件又指向数据库"成绩"的 一个"语文"表,那么当程序运行时,它就自动显示此"语文"表的数据。 基本步骤如下: 1、向工程上添加Microsoft Data Bound Grid Control控件,即DBGrid控件。 2、在窗体上添加DBGrid控件DBGrid1和Data控件Data1。 3、设置Data1的DatabaseName属性为你要看的数据库的名字。 4、设置Data1的RecordSource属性为表的名字或合法的SQL Select语句。 5、设置DBGrid1的DataSource属性为Data1。   从上面的分析看得出来,这个控件虽然操作方便,但是它也有局限性,就是不能对显示的数据进行灵活的控制操作,比如有些数据允许用户修改,有些数据却不允许用户修改,而此控件却只能提供全部数据源的原子操作:即要么全部允许修改,要么就全部不允许。还有另外此控件也不提供对单个单元格(cell)进行操作,所以提供不了更为个性化的界面风格。   2. Microsoft Datagrid Control   此控件跟前面介绍的Data Bound grid Control控件很相似,也是主要进行绑定操作,而缺点和Data Bound grid Control完全一样。但是它跟Data Bound grid Control不一样的是其数据源的驱动引擎只能是OLEDB形式的,不能是DAO,比如就可以使用ADO数据控件,不能使用DATA控件。而Data Bound grid Control却刚好和它相反,这一点在开发中一定要注意。   3. Microsoft Flexgrid Control与Microsoft Hierarchial Flexgrid Control.   这里重点介绍这两种控件,因为在实际开发中,这两种控件应用的场合更多一些,它不仅能够反映数据,而且也能把数据的修改信息反映到数据库中去,所以弥补了上述两种控件的不足。   如果数据不需要修改,那么可以进行绑定操作,其方法跟前面介绍的完全一样,就是通过设置DataSource属性来完成数据的显示工作。但是实际开发中,需要对整个表格控件更为灵活的显示控制。   在给出例程之前,有必要对这一控件进行比较详尽的认识:这种控件允许将文本或者图象放置于每个单元格之中,控件的Row与Col属性允许用户在代码中指定当前行和列,当然也可通过操作鼠标和键盘来改变这两个属性,而text属性指明当前单元格的文本。如果单元格的文本太长而不能完全显示出来的话,可以通过将WordWrap属性设置为true来达到显示的目的。下面将比较重要的属性小结如下:   DataSource---------用来指定需要绑定的数据源,比如data控件。   Cellpicture----------用来设定当前单元格的图象,便于显示该图象。此属性不能在设计时使用。   Col,Row---------------设定当前列和当前行,注意它们均是从0开始的,如果同时设定它们,可以指定当前的单元格。设计时也不能使用。   Cols,Rows---------------设置表格控件总的列数和行数。   Hwnd---------------表格句柄,可以结合Windows API对表格控件进行更高级的控制。   Text---------------指定当前的单元格的文本内容。   TextMatrix(i,j)-------此属性比较重要,它用来指定第I行和第j列所确定的单元格的文本内容。它等价于下面的代码: MSHFlexGrid1.Rows =i MSHFlexGrid1.Cols =j MSHFlexGrid1.Text =指定的字符串   WordWrap-------为ture时可以在当前单元格换行显示,否则如果要显示的字符的长度超过列宽,那么就不能显示完全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨亦涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值