MSFlexGrid 控件

MSFlexGrid 控件对表格数据进行显示和操作。在对包含字符串和图片的表格进行分类、合并以及格式化时，具有完全的灵活性。当绑定到 Data 控件上时，MsFlexGrid 所显示的是只读数据。

语法

MSFlexGrid

说明

可以将文本、图片，或者文本和图片，放在 MSFlexGrid 的任意单元中。Row 和 Col 属性指定了 MSFlexGrid 中的当前单元。程序员可以在代码中指定当前单元，也可以在运行时，使用鼠标或者方向键来对其进行修改。Text 属性引用当前单元的内容。

如果单元的文本过长而不能在该单元中显示，而且 WordWrap 属性被设置为 True，那么文本就会换行到同一单元内的下一行。为了显示换行的文本，可能需要增加单元的列宽度（ColWidth 属性）或者行高度（RowHeight 属性）。

可以用 Cols 和 Rows 属性来决定 MSFlexGrid 控件中的列数和行数。

发行注意   在应用程序中使用 MSFlexGrid 控件之前，必须将 MSFlxGrd.ocx 文件添加到工程中。为了将该文件自动包括到工程中，可以把它放到自动装载文件中。当发行应用程序时，应该将 MSFlxGrd.ocx 文件安装到用户的 Microsoft Windows 的 System 子目录下。关于将 ActiveX 控件添加到工程中的详细信息，请参阅《程序员指南》。


AddItem 方法 (MSFlexGrid)

该方法将一个行添加到 MSFlexGrid 控件中。不支持命名参数。

语法

object.AddItem (item As String, index)

AddItem 方法的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
item	必需的。字符串表达式，它在新增行中显示。可以用制表符 (vbTab) 来分隔每个字符串，从而将多个字符串（行中的多个列）添加进去。
Index	可选的。Long 类型，它代表了控件中放置新增行的位置。对于第一行来说，index = 0。如果省略 index，那么新增行将成为最后一行。


AddItem 和 RemoveItem 方法 (MSFlexGrid) 示例

在该示例中，用 AddItem 方法将 100 项添加到 MSFlexGrid 中。要试用此例，可以将代码粘贴到窗体（该窗体带有命名为 MSFlexGrid1 的 MSFlexGrid 控件）的声明部分，然后按 F5 键，并单击该窗体。

Private Sub Form_Click ()

Dim Entry, i, Msg	'声明变量。

Msg = _

"Choose OK to add 100 items to your MSFlexGrid."

MsgBox Msg	'显示消息。

MSFlexGrid1.Cols = 2	'每行有两个字符串。

For i = 1 To 100	'从 1 计数到 100。

Entry = "Entry " & Chr(9) & I	'创建项。

MSFlexGrid1.AddItem Entry	'添加项。

Next i

Msg = "Choose OK to remove every other entry."

MsgBox Msg	'显示消息。

For i = 1 To 50	'决定怎样删除

MSFlexGrid1.RemoveItem i	'其它每一项。

Next I

Msg = "Choose OK to clear all items."

MsgBox Msg	'显示消息。

MSFlexGrid1.Clear	'清除列表框。

End Sub


AllowBigSelection 属性

该属性返回或者设置一个值，该值决定了在行头或者列头上单击时，是否可以使得整个行或者列都被选中。

语法

object.AllowBigSelection [= boolean ]

AllowBigSelection 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
boolean	决定了在行头或者列头上单击时，是否可以使得整个行或者列被选中。按照缺省规定，该属性是 True。
说明

例如，下面的代码表示：当用户在标头上单击时，允许整个行或者列都被选中：

Sub Form1_Load ()

MSFlexGrid1.AllowBigSelection = True

End Sub


AllowUserResizing 属性

该属性返回或者设置一个值，该值决定了是否可以用鼠标来对 MSFlexGrid 控件中行和列的大小进行重新调整。

语法

object.AllowUserResizing [= value ]

AllowUserResizing 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了用户是否可以对行和列的大小进行重新调整，就象下面的“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexResizeNone	0	（缺省的）不允许。用户不能用鼠标来重新调整大小。
flexResizeColumns	1	列。用户可以用鼠标来重新调整列的大小。
flexResizeRows	2	行。用户可以用鼠标来重新调整行的大小。
flexResizeBoth	3	行和列。用户可以用鼠标来重新调整行和列的大小。
说明

为调整行和列的大小，鼠标应该在 MSFlexGrid 控件的固定区域的上方，并接近于行和列之间的边界。鼠标指针将改变为适当的调整大小用的指针，用户可以拖动行或者列，以改变行的高度或者列的宽度。下面的代码就实现了这种功能：

Sub Form1_Load ()

MSFlexGrid1.AllowUserResizing = True

End Sub


BackColor、BackColorBkg、BackColorFixed 以及 BackColorSel 属性

这些属性返回或设置 MSFlexGrid 的各种不同元素的背景颜色。

语法

object.BackColor [=color ]

object.BackColorBkg [=color ]

object.BackColorFixed [=color ]

object.BackColorSel [=color ]

BackColor、BackColorBkg、BackColorFixed 以及 BackColorSel 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
color	数值表达式，它指定了颜色。
说明

下面的图片显示了这些属性分别引用 MSFlexGrid 的哪一部分：

BackColor 影响所有未确定单元的颜色。可以用 CellBackColor 属性来对单个单元的背景颜色进行设置。


BackColor、BackColorBkg、BackColorFixed 以及 BackColorSel 属性示例

在该示例中，用了 MSFlexGrid 中的 BackColorBkg、BackColorFixed 以及 BackColorSel 属性。它以每秒钟两次的速度，随机地对 MSFlexGrid 控件的控件背景、已选定背景，以及确定单元背景的颜色进行重置。要试用此例，可以将下面的代码粘贴到窗体（该窗体带有命名为 Timer1 的 Timer 控件和命名为 MSFlexGrid1 的 MSFlexGrid 控件）的声明部分，然后加载该窗体。

Private Sub Form_Load ()

Timer1.Interval = 500

End Sub

Private Sub Timer1_Timer ()

MSFlexGrid1.BackColorBkg = QBColor(Rnd * 15)

MSFlexGrid1.BackColorFixed = QBColor(Rnd * 10)

MSFlexGrid1.BackColorSel = QBColor(Rnd * 10)

End Sub


CellAlignment 属性

该属性返回或者设置一个值，该值决定了单元或者一群选定单元中的数据对齐方式。在设计时不可用。

语法

object.CellAlignment [= value ]

CellAlignment 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了单元中的文本如何对齐，如下“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexLeftTop	0	左边顶端对齐
flexLeftCenter	1	左边中间对齐（对于字符串来说，这是缺省时的情况）
flexLeftBottom	2	左边底端对齐
flexCenterTop	3	居中顶端对齐
flexCenterCenter	4	居中中间对齐
flexCenterBottom	5	居中底端对齐
flexRightTop	6	右边顶端对齐
flexRightCenter	7	右边中间对齐（对于数字来说，这是缺省时的情况）
flexRightBottom	8	右边底端对齐
flexGeneral	9	一般的情况是：对于字符串来说，左边中间对齐，对于数字来说，右边中间对齐
说明

下面的示例用常数设置值将每个单元的文本对齐方式设置为 Left Center。

Sub Form1_Load ()

MSFlexGrid1.CellAlignment = flexAlignLeftCenter

End Sub


CellBackColor 和 CellForeColor 属性

这两个属性返回或设置单个单元或者一群单元的背景和前景颜色。在设计时不可用。

语法

object.CellBackColor [= color ]

object.CellForeColor [= color ]

CellBackColor 和 CellForeColor 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
color	整数（枚举）。数值表达式，它为当前选定单元指定了颜色。将这些属性中的任何一个设置为 0，都将用标准背景和前景颜色来画单元。
说明

对这个属性进行修改会影响当前单元或者当前选定，这取决于 FillStyle 属性的设置值。

将这些属性中的任何一个设置为 0，MSFlexGrid 都将用标准背景和前景颜色来画单元。如果想把这些属性中的任何一个设置为黑色，可以将它们设置为 1，而不是 0。

可以用 BackColorBkg、BackColorFixed、BackColorSel、ForeColorFixed 以及 ForeColorSel 属性对各种不同的 MSFlexGrid 元素的颜色进行设置。可以用 BackColor 属性将所有未确定单元设置为同样的背景颜色。


CellBackColor、CellForeColor 属性示例

在该示例中，用了 MSFlexGrid 中的 CellBackColor 和 CellForeColor 属性。它以每秒钟两次的速度，随机地对 MSFlexGrid 控件的焦点单元的背景颜色和文本颜色进行重置。要试用此例，可以将下面的代码粘贴到窗体（该窗体带有命名为 Timer1 的 Timer 控件和命名为 MSFlexGrid1 的 MSFlexGrid 控件）的声明部分，然后加载该窗体。

Private Sub Form_Load ()

Timer1.Interval = 500

MSFlexGrid1.Text = "Focus Here"

End Sub

Private Sub Timer1_Timer ()

MSFlexGrid1.CellBackColor = QBColor(Rnd * 15)

MSFlexGrid1.CellForeColor = QBColor(Rnd * 10)

End Sub


CellFontBold 属性

该属性返回或设置当前单元文本的粗体样式。在设计时不可用。

语法

object.CellFontBold [= boolean ]

CellFontBold 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
boolean	决定了当前单元文本是否是粗体的。按照缺省规定，该属性是 False。
说明

对该属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。无论何时，当 MSFlexGrid 控件在焦点中时，下面的代码将当前单元的文本设置为粗体样式：

Sub MSFlexGrid1_GotFocus()

MSFlexGrid1.CellFontBold = 1

End Sub


CellFontItalic 属性

该属性返回或设置当前单元文本的斜体样式。在设计时不可用。

语法

object.CellFontItalic [= boolean ]

CellFontItalic 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
boolean	决定了单元中的文本样式是否是斜体的。按照缺省规定，该属性是 False。
说明

对该属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。无论何时，当 MSFlexGrid 控件在焦点中时，下面的代码将当前单元的文本设置为斜体样式：

Sub MSFlexGrid1_GotFocus()

MSFlexGrid1.CellFontItalic = True

End Sub


CellFontName 属性

该属性返回或设置当前单元文本的字体名。在设计时不可用。

语法

object.CellFontName [= name ]

CellFontName 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
name	字符串表达式，命名一种可用的字面。
说明

对该属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。无论何时，当 MSFlexGrid 控件在焦点中时，下面的代码将当前单元的文本设置为一种特定的字体类型：

Sub MSFlexGrid1_GotFocus()

MSFlexGrid1.CellFontName = Screen.Fonts(3)

MSFlexGrid1.Text = Screen.Fonts(3)	'显示字体名。

End Sub


CellFontSize 属性

该属性返回或设置以点数为单位的当前单元文本的尺寸。在设计时不可用。

语法

object.CellFontSize [= value ]

CellFontSize 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	Single 类型。数值表达式，它指定了当前单元文本的尺寸。
说明

对该属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。无论何时，当 MSFlexGrid 控件在焦点中时，下面的代码将当前单元的文本的尺寸设置为 12 个点：

Sub MSFlexGrid1_GotFocus()

MSFlexGrid1.CellFontSize = 12

End Sub


CellFontStrikeThrough 属性

该属性返回或者设置一个值，该值决定了是否将 FontStrikeThrough 样式应用到当前单元文本中。

语法

object.CellFontStrikeThrough =[ boolean]

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
Boolean	布尔表达式，它决定了是否将 StrikeThrough 样式应用到单元文本中。
设置值

boolean 的设置值是：

设置值	描述
True	将 StrikeThrough 样式应用到单元文本中。
False	（缺省的）不将 StrikeThrough 样式应用到单元文本中。
说明

对该属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。无论何时，当 MSFlexGrid 控件在焦点中时，下面的代码将当前单元文本设置为 Strike-Through 样式：

Sub MSFlexGrid1_GotFocus

MSFlexGrid1.CellFontStrikeThrough = 1

End Sub


CellFontUnderline 属性

该属性返回或者设置一个值，该值指定了是否将下划线样式应用到当前单元文本中。

语法

object.CellFontUnderline =[ boolean]

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
boolean	布尔表达式，它决定了是否将 Underline 样式应用到单元文本中。
设置值

boolean 的设置值是：

设置值	描述
True	将 Underline 样式应用到单元文本中。
False	（缺省的）不将 Underline 样式应用到单元文本中。
说明

对该属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。无论何时，当 MSFlexGrid 控件在焦点中时，下面的代码将当前单元的文本设置为 Underline 样式：

Sub MSFlexGrid1_GotFocus

MSFlexGrid1.CellFontUnderline = 1

End Sub


CellFontWidth 属性

该属性返回或设置以点数表示的当前单元文本宽度。在设计时不可用。

语法

object.CellFontWidth [= value ]

CellFontWidth 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	Single 类型。数值表达式，它指定了当前单元文本字体所要求的点数宽度。
说明

对该属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。当 MSFlexGrid 控件在焦点中时，下面的代码对当前单元的文本宽度进行设置：

Sub MSFlexGrid1_GotFocus()

MSFlexGrid1.CellFontWidth = 5

End Sub


CellHeight、CellLeft、CellTop 以及 CellWidth 属性

这些属性返回以缇为单位的当前单元的位置和大小。在设计时不可用。

语法

object.CellHeight

object.CellLeft

object.CellTop

object.CellWidth

对象所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

如果想对单元内编辑进行枚举的话，这些属性是很有用的。可以通过捕获 MSFlexGrid 控件的 KeyPress 事件，把文本框或者其它控件放在当前单元的上方，并让用户对其内容进行编辑。

不管窗体的 ScaleMode 设置值怎样，这些属性的返回值总是以缇为单位。


CellPicture 属性

该属性返回或设置在当前单元或者一群单元中显示的图象。在设计时不可用。

语法

object.CellPicture [= picture ]

CellPicture 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
picture	位图、图标，或者元文件图形。也可以把它赋给另一个控件的 Picture 属性。
说明

在运行时，可以通过在位图、图片或者元文件上使用 LoadPicture 函数，或者将之赋给另一个控件的 Picture 属性来对该属性进行设置。

对这个属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。

每个单元都可能包含文本和图片。文本和图片的相对位置是由 CellAlignment 和 CellPictureAlignment 属性所决定的。


CellPicture 属性示例

在该示例中，将 Visual Basic 图标库中的图标加载到 MSFlexGrid 控件的两个单元中。可以使用任意两个图标。将下面的代码粘贴到某个窗体（该窗体带有 MSFlexGrid 控件）的声明部分。按 F5 键来运行该程序，然后单击该窗体。

Private Sub Form_Click ()

'加载图标。

MSFlexGrid1.Row = 1

MSFlexGrid1.Col = 1

Set MSFlexGrid1.CellPicture = _

LoadPicture("Icons\Computer\Trash02a.ico")

MSFlexGrid1.Row = 1

MSFlexGrid1.Col = 2

Set MSFlexGrid1.CellPicture = _

LoadPicture("Icons\Computer\Trash02b.ico")

End Sub


CellPictureAlignment 属性

该属性返回或设置在单元或者一群选定单元中图片的对齐方式。在设计时不可用。

语法

object.CellPictureAlignment [= value ]

CellPictureAlignment 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了单元中的图片如何对齐，如下“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexLeftTop	0	左边顶端对齐
flexLeftCenter	1	左边中间对齐
flexLeftBottom	2	左边底端对齐
flexCenterTop	3	居中顶端对齐
flexCenterCenter	4	居中中间对齐
flexCenterBottom	5	居中底端对齐
flexRightTop	6	右边顶端对齐
flexRightCenter	7	右边中间对齐
flexRightBottom	8	右边底端对齐
说明

对该属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。

下面的代码用常数值来将当前单元的图片对齐方式设置为右边中间。

Sub Form1_Load

MSFlexGrid1.CellPictureAlignment = _

flexAlignRightCenter

End Sub


CellTextStyle 属性

该属性返回或设置指定单元或者一群单元上文本的三维样式。在设计时不可用。

语法

object.CellTextStyle [= value ]

CellTextStyle 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了 CellTextStyle 属性中的一个常数，如下“设置值”中所述。
设置值

value 的设置值为：

常数	值	描述
flexTextFlat	0	平面的（普通文本）
flexTextRaised	1	凸起的
flexTextInset	2	下陷的
flexTextRaisedLight	3	轻微凸起的
flexTextInsetLight	4	轻微下陷的
说明

设置值 1 和 2 最好用于大字体和粗体字。设置值 3 和 4 最好用于小的常规字体。单元的外观同时还受到背景颜色的影响；许多背景颜色显不出凸起或者下陷的效果。

对这个属性所做的更改会影响到当前单元或者当前选定，这取决于 FillStyle 属性的设置值。

下面的代码用常数值来将当前单元或者当前选定的文本样式设置为 Inset。

Sub MSFlexGrid1_GotFocus

MSFlexGrid1.CellTextStyle = flexTextInset

End Sub


Clear 方法 (MSFlexGrid)

该方法清除 MSFlexGrid 的内容。这包括所有文本、图片和单元格式。Clear 方法并不影响 MSFlexGrid 上的行数和列数。

语法

object.Clear

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

为了删除单元，但并非仅仅清除它们，可以在每个要删除的行上使用 RemoveItem 方法。


Clear 方法 (MSFlexGrid) 示例

在该示例中，无论何时，当用户在单元上单击时，都将 "Flex" 放到当前单元中。无论何时，当用户双击时，都清除 MSFlexGrid 控件。可以单击 F5 键来运行该程序。

Private Sub Form1_Load ()

MSFlexGrid1.Rows = 8

MSFlexGrid1.Cols = 5

End Sub

Private Sub MSFlexGrid1_Click ()

'将文本放到当前单元中。

MSFlexGrid1.Text = "Flex"

End Sub

Private Sub MSFlexGrid1.DblClick ()

MSFlexGrid1.Clear

End Sub


Clip 属性 (MSFlexGrid)

该属性返回或设置 MSFlexGrid 控件的选定区域中单元的内容。在设计时不可用。

语法

object.Clip [= string ]

Clip 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
string	字符串表达式，它带有已选定区域的内容。
说明

string 可能包含多个行和列的内容。在 string 中，制表符，即 Chr (9)，或者说常数 vbTab 指示了某一行中的一个新单元，而回车换行符，即 Chr (13)，或者说 vbCR 则指示了一个新行的开始。可以用 Chr 函数或者 vb 常数来将这些字符嵌入到字符串中。

当把数据放入 MSFlexGrid 控件时，只是选定的单元受影响。如果选定区域中的单元比 string 中描述的更多，那么余下的单元就被单独放到一边。如果 string 中描述的单元比选定区域中的更多，那么 string 的未使用部分就被忽略。


Clip 属性 (MSFlexGrid) 示例

在该示例中，无论何时，当用户选定了一组单元时，将 "James"、"Nancy" 以及 "Lisa" 放到已选定单元中。无论何时，当用户双击时，都清除 MSFlexGrid 控件。可以单击 F5 键来运行该程序。

Private Sub Form1_Load ()

MSFlexGrid1.Rows = 8

MSFlexGrid1.Cols = 5

End Sub

Private Sub MSFlexGrid1_MouseUp (Button As Integer, _

Shift as Integer, X As Single, Y As Single)

Dim myStr As String

myStr = "James" + Chr(9) + "Nancy" + Chr(9) + "Lisa"

MSFlexGrid1.Clip = myStr

End Sub


Col 和 Row 属性 (MSFlexGrid)

这两个属性返回或设置 MSFlexGrid 中活动单元的坐标。在设计时不可用。

语法

object.Col [= number ]

object.Row [= number ]

Col 和 Row 的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
number	Long 类型。数值表达式，它指定了活动单元的位置。
说明

可以用这些属性来指定 MSFlexGrid 中的单元，或者找到包含当前单元的那个行或者列。行和列是从 0 开始计数的，对于行来说，以顶端为起始，而对于列来说，则以左边为起始。

对这些属性进行设置会自动对 RowSel 和 ColSel 进行重置，这样，所选定的就变成了当前单元。因此，为了指定一个块选定，必须首先对 Row 和 Col 进行设置，然后对 RowSel 和 ColSel 进行设置。

当前单元的值（由 Col 和 Row 的设置值所决定的），就是包含在那个单元中的文本。可以用 TextMatrix 属性在不改变已选定的 Row 和 Col 属性的情况下，对单元的值进行修改。


Col、Row 以及 Text 属性 (MSFlexGrid) 示例

在该示例中，将 "Here" 放到当前单元中，然后将活动单元更改为第 3 行中的第 3 个单元，并将 "There" 放到那个单元中。可以单击 F5 键来运行该程序，然后单击网格。

Private Sub Form1_Load ()

MSFlexGrid1.Rows = 8

MSFlexGrid1.Cols = 5

End Sub

Private Sub MSFlexGrid1_Click ()

'将文本放到当前单元中。

MSFlexGrid1.Text = "Here"

 	'	将文本放到第 3 行，第 3 列。

MSFlexGrid1.Col = 2

MSFlexGrid1.Row = 2

MSFlexGrid1.Text = "There"

End Sub


ColAlignment 属性 (MSFlexGrid)

该属性返回或设置某一列中数据的对齐方式。在设计时不可用（通过 FormatString 属性来间接做到这一点的情况除外）。

语法

object.ColAlignment( number ) [= value ]

ColAlignment 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
number	Long 类型。MSFlexGrid 控件中的列号，或者 -1（一次性地对所有列进行设置）。
value	整数或者常数，它指定了某一列中数据的对齐方式，如下“设置值”中所述。
说明

value 的设置值是：

常数	值	描述
flexAlignLeft	0	左边对齐
flexAlignRight	1	右边对齐
flexAlignCenter	2	居中
说明

任何列都可能有不同于其它列的对齐方式。该属性会影响指定列中的所有单元，包括在固定行中的那些。

可以用 CellAlignment 属性对单个单元的对齐方式进行设置。在设计时，可以用 FormatString 属性对列的对齐方式进行设置。

下面的代码用常数值将第 3 列的对齐方式设置为 Right Align。

Sub Form1_Load ()

MSFlexGrid1.ColAlignment(3) = flexAlignRight

End Sub


ColData 和 RowData 属性

这些属性返回或设置跟每个行和列相关联的一个任意的 long 类型的值。在设计时不可用。

语法

object.ColData( number ) [= value ]

object.RowData( number ) [= value ]

ColData 和 RowData 的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
number	Long 类型。在保存或者检索数据的 MSFlexGrid 控件中的行号或者列号。
value	Long 类型。数值表达式，它指定 ColData 或者 RowData 数组的内容。
说明

可以用 RowData 和 ColData 属性来使指定的数值跟 MSFlexGrid 控件上的每一行或者列相关联,然后就可以在代码中使用这些数值来识别各项。

例如，可以将包含总数的行添加到 MSFlexGrid 中，并通过将它们的 RowData 属性设置为一个非 0 值来识别这些行。为了以后对这些总数进行更新，可以通过扫描 RowData 数组并删除相应的行来删除过时的总数。

对 RowData 属性的另一个典型应用是将一个索引放到数据结构的数组中，这些数据结构跟在每一行上所描述的各项相关联。


ColIsVisible 属性

该属性返回一个 Boolean 类型值，该值指示了指定列在当前是否是可见的。

语法

object.ColIsVisible( index )

ColIsVisible 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
index	Long 类型。列号。该值必须在从 0 到 Cols 属性 -1 的范围内。
返回值

ColIsVisible 属性的返回值是：

设置值	描述
True	指定列在当前是可见的。
False	指定列在当前是不可见的。


ColPosition 和 RowPosition 属性

这两个属性对 MSFlexGrid 的行或者列的位置进行设置，从而允许将行和列移动到指定位置。

语法

object.ColPosition( number ) [= value ]

object.RowPosition( number ) [= value ]

ColPosition 和 RowPosition 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
number	Long 类型。将被移动的行号或列号。
value	Integer 类型。数值表达式，它指定了行或者列的新位置。
说明

索引或者设置值必须跟有效的行号或者列号（在从 0 到 Rows -1 或者 Cols -1 的范围内）相对应，否则将产生错误。

例如，下面的代码当用户在某一行上单击时，将该行移动到第一个位置：

Sub MSFlexGrid1_Click ()

MSFlexGrid1.ColPosition(MSFlexGrid1.MouseCol) = 0

End Sub

当用这些属性来移动某一行或者列时，所有格式化信息（包括宽度、高度、对齐方式、颜色、字体，等等）都将随之一起移动。如果想只移动文本，可以用 Clip 属性。


Cols 和 Rows 属性 (MSFlexGrid)

这两个属性返回或设置 MSFlexGrid 中行或者列的总数。

语法

object.Cols [= value ]

object.Rows [= value ]

Cols 和 Rows 的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	Long 类型。数值表达式，它指定了行或者列的数目。
说明

可以用这些属性在运行时动态地扩展或者收缩 MSFlexGrid。

行或者列的最小数目是 0。最大数受限于计算机上的可用内存。

Cols 的值必须至少比 FixedCols 的值大 1，除非它们都被设置为 0。Rows 的值必须至少比 FixedRows 的值大 1，除非它们都被设置为 0。


Cols 和 Rows 属性 (MSFlexGrid) 示例

在该示例中，将 "Here" 放到当前单元中，然后将活动单元更改为第 3 行的第 3 单元，并把 "There" 放到那个单元中。可以单击 F5 来运行该程序，然后单击该网格。

Private Sub Form_Load ()

MSFlexGrid1.Rows = 8

MSFlexGrid1.Cols = 5

End Sub

Private Sub MsFlexGrid1_Click ()

'将文本放到当前单元中。

MSFlexGrid1.Text = "Here"

'将文本放到第 3 行，第 3 列。

MSFlexGrid1.Col = 2

MSFlexGrid1.Row = 2

MSFlexGrid1.Text = "There"

End Sub


ColSel 和 RowSel 属性

这两个属性返回或设置一群单元的起始或结束的行或者列。在设计时不可用。

语法

object.ColSel [= value ]

object.RowSel [= value ]

ColSel 和 RowSel 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	Long 类型。数值表达式，它指定了一群单元的起始或结束的行或者列。
说明

可以在代码中用这些属性选定 MSFlexGrid 的指定区域，或者将用户选定的区域大小读到代码中。

MSFlexGrid 游标是在 Row 和 Col 位置上的单元。MSFlexGrid 选定是在 Row 和 RowSel 行以及 Col 和 ColSel 列之间的区域。注意 RowSel 可能高于或者低于 Row，而 ColSel 可能在 Col 的左边或者右边。

无论何时，在设置了 Row 和 Col 属性之后，RowSel 和 ColSel 便自动重置，这样游标就变成了当前选定。如果想从代码中选定一个单元块，那么必须首先设置 Row 和 Col 属性，然后设置 RowSel 和 ColSel。

下面的代码将 ColSel 属性的当前值写入 MSFlexGrid1 的第一个单元中。该值随着用户单击不同的选定单元组而改变。

Private Sub MSFlexGrid1_MouseUp _

(Button As Integer, Shift As Integer, x As Single, _

y As Single)

MSFlexGrid1.Text = MSFlexGrid1.ColSel

End Sub


ColPos 属性

该属性返回以缇为单位的控件左上角跟指定列左上角之间的距离。

语法

object.ColPos( index )

ColPos 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
index	Long 类型。列号。该值必须在从 0 到 Cols 属性 -1 的范围内。


ColWidth 属性 (MSFlexGrid)

该属性返回或设置以缇为单位的指定列的宽度。在设计时不可用。

语法

object.ColWidth( number ) [= value ]

ColWidth 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
number	Long 类型。MSFlexGrid 控件中列号。如果是 -1，则一次对所有列进行设置。
value	数值表达式。它指定了以缇为单位的指定列的宽度。
说明

在运行时，可以用这个属性对任意列的宽度进行设置。关于在设计时对列的宽度进行设置的指令，请参阅 FormatString 属性。

可以通过将 ColWidth 设置为 0 来创建不可见的列，如果设置为 -1，则将列的宽度重置为其缺省值，这取决于当前字体的大小。

下面的代码写入了第 1 列的当前尺寸的当前值。通过将 AllowUserResizing 属性设置为 True 可以使得这一点变得更明显，这样当用户重新调整 Column 1 时，值就会改变。

Sub Form1_Load()

MSFlexGrid1.AllowUserResizing = True

End Sub

Sub MSFlexGrid1_MouseUp (Button As Integer, Shift As _

Integer, X As Single, Y As Single)

MSFlexGrid1.Text = MSFlexGrid1.ColWidth(0)

End Sub


Compare 事件

在当 MSFlexGrid 控件的 Sort 属性被设置为 Custom Sort (9) 时，这样用户就可以自定义分类过程，该事件发生。

语法

Private Sub object_Compare(row1 As Integer, row2 As Integer, cmp As Integer)

Compare 事件的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
row1	Long 类型，它代表一对正被比较的行中的第一行。
row2	Long 类型，它代表一对正被比较的行中的第二行。
cmp	Interger，它代表每一对的分类顺序，就象在“设置值”中所述。
设置值

事件处理器必须对 row1 和 row2 进行比较，并将 cmp 设置为：

设置值	描述
-1	如果 row1 应该在 row2 之前出现。
0	如果两行都相同，或者任意一行可以在另一行之前出现。
1	如果 row1 应该在 row2 之后出现。
说明

当 Sort 属性被设置为 9（自定义分类）时，就会在要进行比较的控件的每一行中触发一次 Compare 事件。因为 Compare 事件使用行号，而不使用文本值，所以可以用它来比较那一行的任何属性值，包括 RowData。自定义分类比起内置分类来，总是更慢一些。不过，可以通过任意列或者使用任何其它单元属性来对某一行进行分类。


EnterCell 事件

当前活动单元改变为另外一个单元时，该事件发生。

语法

Private Sub object_EnterCell ()

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

将鼠标拖到单元上方并不会触发 EnterCell 事件。在固定行上单击鼠标将在那一行的第一个非固定列上触发这个事件。


FillStyle 属性 (MSFlexGrid)

该属性返回或者设置一个值，该值决定了对 Text 属性或对 MSFlexGrid 的一个单元格式化属性所进行的设置是否影响所有已选定的单元。

语法

object.FillStyle[ = value ]

FillStyle 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了填充样式，如下“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexFillSingle	0	单个（缺省的）。更改 Text 或者任何单元属性仅仅影响活动单元。
flexFillRepeat	1	重复。更改 Text 或者任何单元属性会影响所有已选定单元。
说明

下面的代码允许对独立单元进行不同的格式化。

Sub Form1_Load ()

MSFlexGrid1.FillStyle = 0

End Sub

无论何时，如果希望对单元进行的更改能应用到所有单元中，必须将 FillStyle 设置为 1（即 Repeat）。


FixedCols 和 FixedRows 属性 (MSFlexGrid)

这两个属性返回或设置 MSFlexGrid 控件的固定列或者固定行的总数。按照缺省规定，MSFlexGrid 有一个固定列和一个固定行。

语法

object.FixedCols [= value ]

object.FixedRows [= value ]

FixedCols 和 FixedRows 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	Long 类型。数值表达式，它指定了固定列或者固定行的总数。
说明

当 MSFlexGrid 中的其它行或者列滚动时，固定列或者固定行不动。可以有 0 个或者多个固定行，也可以有 0 个或者多个固定列。可以为固定列或者固定行选定颜色、字体、网格以及文本样式。

在运行时，选定固定行或者固定列，就会在那一行或者那一列选定所有单元—除非 SelectionMode 属性具有一个非 0 值。

如果 AllowUserResizing 属性为非 0 值，那么在 MsFlexGrid 控件中具有固定行或者固定列，就允许在运行时用鼠标来重新调整它们的大小。

固定列和固定列一般用在电子数据表应用程序中，用来显示行号和列名或者字母。

例如，下面的代码将第 1 行设置为固定的，并将第 1 列和第 2 列设置为固定的：

Sub Form1_Load ()

MSFlexGrid1.FixedCols = 2

MSFlexGrid1.FixedRows = 1

End Sub


FocusRect 属性

该属性返回或者设置一个值，该值决定了 MSFlexGrid 控件是否应该在当前单元的周围画一个焦点矩形。

语法

object.FocusRect [= value ]

FocusRect 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了焦点矩形的样式，如下“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexFocusNone	0	无。在当前单元周围没有焦点矩形。
flexFocusLight	1	细的（缺省的）。在当前单元周围有细的焦点矩形。
flexFocusHeavy	2	粗的。在当前单元周围有粗的焦点矩形。
说明

如果画出了焦点矩形，那么当前单元就以背景颜色表示，就象在大多数电子数据表和网格中那样，否则，当前单元就以选定的颜色表示，这样即使在没有焦点矩形时，也可以看出选定了哪个单元。

例如，下面的代码使用常数值将活动单元的焦点矩形设置为 Light Rectande。

Sub Form1_Load ()

MSFlexGrid1.FocusRect = flexFocusLight

End Sub


FontWidth 属性

该属性返回或设置以点数为单位的 MSFlexGrid 控件中文本显示使用的字体宽度。

语法

object.FontWidth [= value ]

FontWidth 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	Single 类型。数值表达式，它指定了当前字体所要求的点数宽度。
说明

字体宽度一般是由 Windows 所选定的，跟所选定的字体高度相匹配，并提供一个标准的方向比率。MSFlexGrid 允许指定比缺省字体窄或者宽的字体，这样就可以在一个单元中显示更多信息，或者突出显示某些单元。

当指定字体宽度时，Windows 将试图选定或者产生一种字体来跟所提出的要求相匹配。为了得到最好的结果，可以用更加灵活的 TrueType 字体。例如，Courier New 字体，当使其比起缺省字体来更窄一些时，看起来是非常好的。

为了恢复缺省的字体宽度，可以将这个属性设置为 0。

为了对单个单元或者一群单元的字体进行设置，可以用 CellFontBold、CellFontItalic、CellFontName、CellFontSize 以及 CellFontWidth 属性。


ForeColor、ForeColorFixed 以及 ForeColorSel 属性

这些属性返回或设置在 MSFlexGrid 控件的每个部分上画文本所使用的颜色。

语法

object.ForeColor [= color ]

object.ForeColorFixed [= color ]

object.ForeColorSel [= color ]

ForeColor、ForeColorFixed 以及 ForeColorSel 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
color	值或者常数，它决定了在 MSFlexGrid 的可滚动区域或者固定区域内画文本时所使用的颜色。
说明

下图显示了这些属性分别引用 MSFlexGrid 的各个部分：

可以用 ForeColor 属性来对所有非固定单元的文本颜色进行设置。可以用 CellForeColor 属性来对独立单元的文本颜色进行设置。


ForeColor、ForeColorFixed 以及 ForeColorSel 属性示例

在该示例中，每隔 1 秒，将 MSFlexGrid 的 ForeColorFixed 和 ForeColorSel 属性设置为随机选取的颜色：

Private Sub Form_Load ()

Timer1.Interval = 500

MSFlexGrid1.FillStyle = 2

MSFlexGrid1.Text = "Color Me"

MSFlexGrid1.FixedCols = 1

MSFlexGrid1.FixedRows = 1

End Sub

Private Sub Timer1_Timer ()

MSFlexGrid1.ForeColorFixed = QBColor(Rnd * 15)

MSFlexGrid1.ForeColorSel = QBColor(Rnd * 10)

End Sub


FormatString 属性

该属性设置一个格式化的字符串，该字符串建立 MSFlexGrid 控件的列宽度、对齐方式，以及固定行和固定列的文本。

语法

object.FormatString[= string ]

FormatString 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
string	字符串表达式，它是用来对行和列中的文本进行格式化的，就象在下面的说明中所述。
说明

在设计时，MSFlexGrid 对 FormatString 进行语法分析，并对其进行解释以获取下面的信息：行数和列数、行头和列头文本、列的宽度，以及列的对齐方式。

FormatString 属性是由管道字符 ( | ) 所分开的许多段所组成的。管道之间的文本定义了一个列，还可能包含特殊的对齐方式字符 <、^、或者 >，以将整个列分别跟左边、中间或者右边对齐。文本被赋予行 0，而其宽度则定义了每一列的宽度。

FormatString 可能还包含一个分号 (";")，它使得字符串的剩余部分被解释为行的标头和宽度信息。文本被赋给列 0，而最长的字符串则定义了列 0 的宽度。

MSFlexGrid 将创建附加的行和列，以容纳 FormatString 所定义的所有字段，但它不会删除行或者列— 如果只指定了几个字段的话。如果愿意，可以通过对 Rows 和 Cols 属性进行设置来做到这一点。


FormatString 属性示例

下面该示例用图说明了 FormatString 属性的工作方式。

'设置列头。

s$ = "<Region  |<Product   |<Employee   |>Sales    "

MSFlexGrid1.FormatString = s$

'设置行头（注意起始的分号）

s$ = ";Name|Address|Telephone|Social Security#"

MSFlexGrid1.FormatString = s$

'设置列头和行头。

s$ = "|Name|Address|Telephone|Social Security#"

s$ = s$ + ";|Robert|Jimmy|Bonzo|John Paul"

MSFlexGrid.FormatString = s$


GridColor 和 GridColorFixed 属性

这两个属性返回或设置在 MSFlexGrid 控件的各个单元之间画线所用到的颜色。

语法

object.GridColor [= color ]

object.GridColorFixed [= color ]

GridColor 和 GridColorFixed 的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
color	值或者常数，它决定了在 MSFlexGrid 的可滚动区域或者固定区域内画网格线时所用到的颜色。
说明

仅当 GridLines 属性被设置为 1（普通线） 时才使用 GridColor 属性，而则仅当 GridLinesFixed 被设置为 1（普通线）时才使用 GridColorFixed。凸起的以及下陷的网格线总是用黑白颜色来画的。


GridLines 和 GridLinesFixed 属性

这两个属性返回或者设置一个值，该值决定了画在单元之间的线的类型。

语法

object.GridLines [= value ]

object.GridLinesFixed [= value ]

GridLines 和 GridLinesFixed 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了所画线的类型，如下“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexGridNone	0	没有线。在单元之间没有任何线。
flexGridFlat	1	线（对于 GridLines 来说是缺省的）。将单元之间线的样式设置为普通线。
flexGridInset	2	下陷线（对于 GridLinesFixed 来说是缺省的）。将单元之间线的样式设置为下陷线。
flexGridRaised	3	凸起线。将单元之间线的样式设置为凸起线。
说明

当 GridLines 属性被设置为 1（普通线）时，线的颜色是由 GridColor 属性所决定的。凸起的以及下陷的网格线总是用黑白颜色来画的。


HighLight 属性 (MSFlexGrid)

该属性返回或者设置一个值，该值决定了所选定的单元是否突出显示。

语法

object.HighLight [= value ]

HighLight 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了 MSFlexGrid 应当何时突出显示所选定的单元，如下“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexHighlightNever	0	从不突出显示所选定的单元。
flexHighlightAlways	1	总是突出显示所选定的单元。
flexHighlightWithFocus	2	当控件有焦点时，突出显示所选定的单元。
说明

当这个属性被设置为 0，而用户选定了一群单元时，没有可视化的迹象表明哪个单元是当前所选定的。当属性被设置为 2（即带有焦点）时，仅当控件有焦点时才能突出显示。


LeaveCell 事件

就在当前活动单元改变为另一个单元之前该事件发生。

语法

Private Sub object_LeaveCell ()

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

该事件对于验证单元的内容来说是有用的。当焦点移动到另一个控件时，并不触发 LeaveCell 事件。


LeftCol 属性 (MSFlexGrid)

该属性返回或设置 MSFlexGrid 控件中的最左边的可见列（而不是固定列）。在设计时不可用。

语法

object.LeftCol [= value ]

LeftCol 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	Interger。数值表达式，它指定了最左边的列。
说明

可以在代码中使用这个属性来有目的地滚动 MSFlexGrid。可以用 TopRow 属性来决定 MSFlexGrid 中最顶层的可见行。


MergeCells 属性

该属性返回或者设置一个值，该值决定了是否应该将有同样内容的单元分组到横跨多个行或者列的同一个单元中。

语法

object.MergeCells [= value ]

MergeCells 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了单元的分组，如下“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexMergeNever	0	（缺省的）不对有同样内容的单元进行分组
flexMergeFree	1	自由分组
flexMergeRestrictRows	2	对行有所限制
flexMergeRestrictColumns	3	对列有所限制
flexMergeRestrictBoth	4	行和列都限制
说明

这种合并单元的能力使得能以一种清晰、诱人的方式来显示数据。单元合并可以跟 MSFlexGrid 控件的分类和列排序能力协调使用。

为了利用 MSFlexGrid 控件的单元合并能力，必须做下面这两件事情：

1.0 将 MergeCells 设置为非 0 值。（设置值之间的不同在下面解释。）

2.ac将 MergeRow() 和 MergeCol() 数组属性设置为 True。

MSFlexGrid 将内容相同的单元合并起来，而且在任何单元的内容被改变之后，会自动更新这种合并。

对于自由分组的合并方式来说，内容相同的单元总会合并。对于受限制的合并方式来说，仅仅内容相同的相邻单元（合并到左边或者合并到上边的单元）才合并起来。

注意   当 MergeCells 被设置为 0（不合并）以外的值之后，选定的突出显示将被自动关闭。这样做的目的，主要是为了加快重画速度，还因为对合并单元范围的选定可能会导致意想不到的后果。


MergeCells 属性示例

在下面这个示例中，显示了带有各种不同 MergeCells 属性值的同一个 MSFlexGrid。

没有任何合并 MergeCells = 0 MergeRow(0) = True MergeRow(1) = True MergeRow(2) = True MergeRow(3) = False 这是常规的查看方式。
自由合并方式 MergeCells = 1 MergeRow(0) = True MergeRow(1) = True MergeRow(2) = True MergeRow(3) = False 注意第 3 个 employee 单元 (Donna)，它跨过 products 合并到它的左边，跨过 sales 合并到它的右边。
有限制的合并方式 MergeCells = 2 MergeRow(0) = True MergeRow(1) = True MergeRow(2) = True MergeRow(3) = False 注意第 3 个 employee 单元 (Donna)，它不再跨过 sales 进行合并。


MergeCol 和 MergeRow 属性

这两个属性返回或者设置一个值，该值决定了当 MergeCells 属性被设置为 0 （不合并）以外的值之后，哪些行和列的内容应当合并。

语法

object.MergeCol( number ) [= boolean ]

object.MergeRow( number ) [= boolean ]

MergeCol 和 MergeRows 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
number	Long 类型。MSFlexGrid 控件中的行号或者列号。
boolean	按照缺省规定，这些属性被设置为 False。
说明

如果 MergeCells 属性被设置为一个非 0 值，那么带有同样值的相邻单元，如果它们在 MergeRow 属性为 True 的同一行中，或者在 MergeCol 属性为 True 的同一列中，就被合并起来。

关于 MSFlexGrid 控件的合并技术工作方式的详细信息，请参阅 MergeCells 属性。


MouseCol 和 MouseRow 属性

这两个属性返回以行和列坐标样式表示的当前鼠标位置。

语法

object.MouseCol

object.MouseRow

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

可以在代码中使用这些属性来决定当前鼠标位置并作出相应动作。如果要显示关于单个单元内容的上下文相关的帮助信息，或者要判断用户是否单击了固定行或者固定列，这两个属性特别有用。


Picture 属性 (MSFlexGrid)

该属性返回 MSFlexGrid 控件的一幅图片，用于打印、保存到磁盘上、复制到剪贴板上，或者赋给另一个不同控件。

语法

object.Picture

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

Picture 属性创建一幅显示 MSFlexGrid 控件的位图。所创建的位图与屏幕上的位图看起来十分相象，但是，为了容纳所有行和列，它向右向下扩展。这意味着如果有一个有 1000 行的 MSFlexGrid 控件，位图一般将包括它们中的全部，这幅图片将非常巨大。

如果想创建 MSFlexGrid 控件的一部分的图片，那么可以写一个例程，将不希望显示的所有元素隐藏起来，在获得图片之后再恢复控件。

如果 MSFlexGrid 很大，那么所创建的位图也很大。为了减小位图的尺寸，并加快速度，可能考虑将 PictureType 属性设置为 1（即单色位图）。这样，图片看上去不是很好，但是它占用相当小的内存。示例中的代码显示了如何捕获内存不够的错误，并用 PictureType 属性自动切换到单色模式。

在下面的示例中，显示了怎样将 MSFlexGrid 控件的 Picture 属性设置为一个 PictureBox 控件：

Private Sub Form_Click ()

Set Picture1.Picture = MSFlexGrid1.Picture

End Sub


ColData、RowData 以及 Picture 属性示例

下面的代码显示了怎样创建一个仅包含当前选定的 MSFlexGrid 图片。

Sub CopySelectedPictureToClipboard (myFlex As _

MSFlexGrid)

Dim i As Integer, tr As Long, lc As Long, _

hl As Integer

'已为操作准备好。

MyFlex.Redraw = False	'消除闪烁。

hl = MyFlex.HighLight	'保存当前设置值。

tr = MyFlex.TopRow

lc = MyFlex.LeftCol

MyFlex.HighLight = 0	'在图片上没有任何突出显示。

'隐藏未选定的行和列。

'（在 RowData/ColData 属性中保存原始大小。）

For i = MyFlex.FixedRows To MyFlex.Rows - 1

If i < MyFlex.Row Or i > MyFlex.RowSel Then

MyFlex.RowData(i) = MyFlex.RowHeight(i)

MyFlex.RowHeight(i) = 0

End If

Next

For i = MyFlex.FixedCols To MyFlex.Cols - 1

If i < MyFlex.Col Or i > MyFlex.ColSel Then

MyFlex.ColData(i) = MyFlex.ColWidth(i)

MyFlex.ColWidth(i) = 0

End If

Next

'滚动到左上角。

MyFlex.TopRow = MyFlex.FixedRows

MyFlex.LeftCol = MyFlex.FixedCols

'复制图片。

clipboard.Clear

On Error Resume Next

MyFlex.PictureType = 0 '彩色。

clipboard.SetData MyFlex.Picture

If Error <> 0 Then

MyFlex.PictureType = 1 '单色。

clipboard.SetData MyFlex.Picture

Endif

'恢复控件。

For i = MyFlex.FixedRows To MyFlex.Rows - 1

If i < MyFlex.Row Or i > MyFlex.RowSel Then

MyFlex.RowHeight(i) = MyFlex.RowData(i)

End If

Next

For i = MyFlex.FixedCols To MyFlex.Cols - 1

If i < MyFlex.Col Or i > MyFlex.ColSel Then

MyFlex.ColWidth(i) = MyFlex.ColData(i)

End If

Next

MyFlex.TopRow = tr

MyFlex.LeftCol = lc

MyFlex.HighLight = hl

MyFlex.Redraw = True

End Sub


PictureType 属性

该属性返回或设置应当由 Picture 属性所产生的图片的类型。

语法

object.PictureType [= type ]

PictureType 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
type	整数或者常数，它指定了应该产生的图片的类型，如下“设置值”中所述。
设置值

type 的设置值是：

常数	值	描述
flexPictureColor	0	显示兼容的位图。
flexPictureMonochrome	1	单色位图。
说明

将此属性设置为 0（显示兼容），可获得一幅高品质的图象。若设置为 1（单色位图），则将获得一幅内存消耗较少但品质低的图象。


Redraw 属性

该属性返回或者设置一个值，该值决定了在每一次改动之后，是否应该重画 MSFlexGrid 控件。

语法

object.Redraw [= boolean ]

Redraw 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
boolean	按照缺省规定，该属性是 True。
说明

在代码中可以用这个属性来减少闪烁：即对 MSFlexGrid 控件的内容作扩展性更新时产生的闪烁。

例如，下面的代码先关闭重画功能，对 MSFlexGrid 的内容作些更改，然后再打开重画功能以显示结果：

Dim i As Integer

'将 MSFlexGrid 冻结，以避免闪烁。

MSFlexGrid.Redraw = False

'对 MSFlexGrid 的内容进行更新。

For i = MSFlexGrid1.FixedRows To MSFlexGrid1.Rows - 1

MSFlexGrid1.TextMatrix(i, 1) = GetName(i, 1)

MSFlexGrid1.TextMatrix(i, 2) = GetName(i, 2)

Next

'显示结果。

MSFlexGrid1.Redraw = True


RemoveItem 方法 (MSFlexGrid)

在运行时，该方法从 MSFlexGrid 控件中删除一行。不支持命名参数。

语法

object.RemoveItem index

RemoveItem 方法的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
index	代表要删除的行的整数。
说明

要删除第一行，用 index = 0。

RemoveItem 方法删除指定的整个一行。而 Clear 方法只清除数据，不删除行本身。


RowColChange 事件 (MSFlexGrid)

在当前活动单元改变为另一个单元时该事件发生。

语法

Private Sub object_RowColChange ()

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

当活动单元改变时，被触发事件的顺序是：LeaveCell、EnterCell、RowColChange。

RowColChange 事件发生在用户单击新单元时，但在用户拖过选定横跨 MSFlexGrid 控件时不发生。


RowHeight 属性 (MSFlexGrid)

该属性返回或设置以缇为单位的指定行的高度。在设计时不可用。

语法

object.RowHeight( number )[= value ]

RowHeight 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
number	Interger。MSFlexGrid 控件中的行号。若为 -1，则一次对所有行进行设置。
value	Single 类型。数值表达式，它指定了以缇为单位的行的高度。
说明

若将 RowHeight 设置为 0，则创建不可见的行。若设置为 -1，则将行的高度重置为其缺省值，这取决于当前字体的大小。

RowHeight 与窗体的刻度模式无关。


RowHeightMin 属性

该属性返回或设置以缇为单位的整个控件的最小行高度。

语法

object.RowHeightMin [= value ]

RowHeightMin 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	Single 类型。数值表达式，它指定了 MSFlexGrid 的最小的行高度。
说明

如果想使用小字体，但是想让各行高一些的话，可以使用该属性。有时设置这个属性比用 RowHeight 属性设置单个行高要容易得多。

RowHeight 与窗体的刻度模式无关。


RowIsVisible 属性

该属性返回一个 Boolean 值，指示特定行当前是否可见。

语法

object.RowIsVisible( index )

RowIsVisible 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
index	Long 类型。列号。该值必须在从 0 到 Cols 属性 -1 的范围内。
返回值

RowIsVisible 属性的返回值是：

设置值	描述
True	指定的行当前可见。
False	指定的行当前不可见。


RowPos 属性

该属性返回以缇为单位的控件的左上角和指定行的左上角之间的距离。

语法

object.RowPos ( index )

RowPos 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
index	Long 类型。列号。该值必须在从 0 到 Cols 属性 -1 的范围内。


SelectionMode 属性

该属性返回或者设置一个值，该值决定了 MSFlexGrid 是允许常规单元选定、按行选定，还是按列选定。

语法

object.SelectionMode [= number ]

SelectionMode 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
number	整数或者常数，它指定了选定模式，如下“设置值”中所述。
设置值

number 的设置值是：

常数	值	描述
flexSelectionFree	0	自由模式。允许按电子数据表的通常模式进行选定。
flexSelectionByRow	1	按行。强迫跨过整个行进行选定，就象在多列列表框中，或者按基于记录显示那样。
flexSelectionByColumn	2	按列。强迫跨过整个列进行选定，就象为排序选定图表或字段的范围那样。


Scroll 事件 (MSFlexGrid)

当 MSFlexGrid 滚动其内容（通过滚动条、键盘，或者改变 TopRow 或者 LeftCol 属性的代码）时，该事件就会出现。

语法

Private Sub object_Scroll ()

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

如果 ScrollTrack 属性被设置为 True，那么当用户拖动/滚动鼠标时，就会触发此滚动事件；否则，在拖动完成之前不触发该事件。


ScrollBars 属性 (MSFlexGrid)

该属性返回或者设置一个值，该值决定了 MSFlexGrid 是否有水平和/或垂直滚动条。

语法

object.ScrollBars [= value ]

ScrollBars 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了滚动条的类型，如下“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexScrollNone	0	没有任何滚动条
flexScrollHorizontal	1	水平滚动条
flexScrollVertical	2	垂直滚动条
flexScrollBoth	3	两种滚动条都有
说明

仅当其内容扩展超过了 MSFlexGrid 控件的边界时，滚动条才出现在 MSFlexGrid 上。例如，当 MSFlexGrid 不能显示其所有行时，所出现的垂直滚动条。如果 ScrollBars 被设置为 False，那么 MSFlexGrid 将没有任何滚动条，不管其内容是否超出边界。

注意：如果 MSFlexGrid 在某个方向上都没有滚动条，那么它将不允许在该方向上的任何滚动，即使用户用键盘选定了控件的可见区域之外的单元。


ScrollTrack 属性

该属性返回或者设置一个值，该值决定了当用户沿着滚动条移动滚动框时，MSFlexGrid 是否应滚动其内容。

语法

object.ScrollTrack [= boolean ]

ScrollTrack 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
boolean	按照缺省规定，该属性设置为 False。
说明

这个属性一般情况下应设置为 False，以避免过多的滚动和闪烁。只有在希望枚举其它有此行为的控件时，或者希望在滚动时查看其余的行和列，才将其设置为 True。


SelChange 事件 (MSFlexGrid)

当所选定的范围改变为另一个不同的单元或者另一群单元时，该事件就会出现。

语法

Private Sub object_SelChange ()

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

当用户单击已选定单元以外的单元，以及当用户用拖动鼠标的办法选定一群新单元时，就会出现 SelChange 事件。用户也可以使用 SHIFT 键加方向键的办法来选定一群单元。

在代码中，可以用 Row、Col、RowSel，或者 ColSel 属性来改变选定区域，从而触发这个事件。当用户单击新单元时，也会出现 RowColChange 事件，但是当用户拖动选定跨过 MSFlexGrid 时，该事件不会发生。


Sort 属性 (MSFlexGrid)

该属性设置一个值，该值根据选定准则来对已选定行进行排序。在设计时不可用。

语法

object.Sort [=value]

Sort 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
value	整数或者常数，它指定了排序的类型，如下“设置值”中所述。
设置值

value 的设置值是：

常数	值	描述
flexSortNone	0	不排序
flexSortGenericAscending	1	一般升序。猜出文本是字符串还是数字
flexSortGenericDescending	2	一般降序
flexSortNumericAscending	3	数字升序。将字符串转化为数字
flexSortNumericDescending	4	数字降序
flexSortStringNoCaseAsending	5	字符串升序。不区分大小写
flexSortNoCaseDescending	6	字符串降序。不区分大小写
flexSortStringAscending	7	字符串升序。区分大小写
flexSortStringDescending	8	字符串降序。区分大小写
	9	自定义。用 Compare 事件来对行进行比较
说明

Sort 属性总是对范围内的全体行进行排序。排序的范围是由 Row 和 RowSel 属性指定的。如果 Row 等于 RowSel，那么 MSFlexGrid 就假定想对所有非固定行进行排序。

排序所用的键是由 Col 和 ColSel 属性决定的，而且总是从左到右。例如，如果 Col = 3，ColSel = 1，那么排序首先根据第 1 列的内容，然后根据第 2 列的内容，再后才是第三列的内容。

用来比较行的方法是由设置值所决定的，就象上面所解释的那样。上面的设置值 9（自定义） 是最灵活的，因为它启动的 Compare 事件允许用自己想用的任何方式来对行进行比较，即使用任意顺序的任意列。（关于这方面的详细信息，请参阅 Compare 事件）。不过，这种方法比其它方法要慢得多（一般要慢十分之一），因此仅当真正必要的时候才使用它。

替代设置值 9（自定义）的一种方法是创建一个不可见的列，将所有排序键放在这一列里，然后根据这个不可见的列，再用其它设置值中的一个（不是设置值 9）来进行排序。例如，对于日期的排序，这是一种非常好的途径。


Sort 和 TextMatrix 属性 (MSFlexGrid) 示例

在以下示例中，根据 ComboBox 控件的值来对网格进行排序。要试用此例，将 MSFlexGrid 控件和 ComboBox 控件放到窗体上。将下面的代码粘贴到窗体的声明部分，然后按 F5 键来运行程序。

Private Sub Combo1_Click()

'根据 Sort 方法来选定列。

Select Case Combo1.ListIndex

Case 0 To 2

MSFlexGrid1.Col = 1

Case 3 To 4

MSFlexGrid1.Col = 2

Case 4 To 8

MSFlexGrid1.Col = 1

End Select

'根据 Combo1.ListIndex 来进行排序。

MSFlexGrid1.Sort = Combo1.ListIndex

End Sub

Private Sub Form_Load()

Dim i As Integer

'用随机数来填充 MSFlexGrid。

MSFlexGrid1.Cols = 3 'Create three columns.

For i = 1 To 11 '添加 10 个项。

MSFlexGrid1.AddItem ""

MSFlexGrid1.Col = 2

MSFlexGrid1.TextMatrix(i, 1) = SomeName(i)

MSFlexGrid1.TextMatrix(i, 2) = Rnd()

Next i

'用 Sort 选项来填充组合框。

With Combo1

.AddItem "flexSortNone" '0

.AddItem "flexSortGenericAscending" '1

.AddItem "flexSortGenericDescending" '2

.AddItem "flexSortNumericAscending" '3

.AddItem "flexSortNumericDescending" '4

.AddItem "flexSortStringNoCaseAsending" '5

.AddItem "flexSortNoCaseDescending" '6

.AddItem "flexSortStringAscending" '7

.AddItem "flexSortStringDescending" '8

.ListIndex = 0

End With

End Sub

Private Function SomeName(i As Integer) As String

Select Case i

Case 1

SomeName = "Ann"

Case 2

SomeName = "Glenn"

Case 3

SomeName = "Sid"

Case 4

SomeName = "Anton"

Case 5

SomeName = "Hoagie"

Case 6

SomeName = "Traut 'Trane"

Case 7

SomeName = "MereD Wah"

Case 8

SomeName = "Kemp"

Case 9

SomeName = "Sandy"

Case 10

SomeName = "Lien"

Case 11

SomeName = "Randy"

End Select

End Function


Text 属性 (MSFlexGrid)

该属性返回或设置单元或者一群单元的文本内容。

语法

object.Text [= string ]

Text 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
string	字符串表达式，它包含了单元或者一群单元的文本内容。
说明

检索时，Text 属性总是检索由 Row 和 Col 属性所定义的当前单元的内容。

设置时，Text 属性设置当前单元或者当前选定的内容，这取决于 FillStyle 属性的设置值。


TextArray 属性

该属性返回或设置任意单元的文本内容。

语法

object.TextArray( cellindex ) [= string ]

TextArray 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
cellindex	Interger。数值表达式，它指定了要读写的单元。请参阅说明。
string	字符串表达式，它包含任意单元的内容。
说明

该属性允许设置或检索单元的内容，而不更改 Row 和 Col 属性。

cellindex 参数决定了使用哪个单元。它等于所需要的行乘以 Cols 属性再加上所需要的列。计算 cellindex 的最清晰和最方便的办法是定义一个函数来做这件事，如下所示：

'计算跟 TextArray 属性一起使用的索引。

Function faIndex(row As Integer, col As Integer) As Long

 faIndex = row * MSFlexGrid1.Cols + col

End Function

Sub Form_Load()

Dim i as Integer

'使用 TextArray 属性，用数据来填充 MSFlexGrid。

For i = MSFlexGrid1.FixedRows to MSFlexGrid1.Rows - 1

'** 列 1

MSFlexGrid1.TextArray(faIndex(i, 1)) = RandomName()

'列 2.

MSFlexGrid1.TextArray(faIndex(i, 2)) = RandomNumber()

Next


TextMatrix 属性

该属性返回或设置任意单元的文本内容。

语法

object.TextMatrix( rowindex, colindex ) [= string ]

TextMatrix 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
rowindex, colindex	Interger。数值表达式，它指定了要读写的单元。
string	字符串表达式，它包含任意单元的内容。
说明

该属性允许设置或检索单元的内容，而不更改 Row 和 Col 属性。


TextStyle 和 TextStyleFixed 属性

这两个属性返回或设置指定单元或者一群单元上文本的三维样式。TextStyle 决定了规则的 MSFlexGrid 单元的样式，而 TextStyleFixed 则决定了固定行和固定列的样式。

语法

object.TextStyle[= style ]

object.TextStyleFixed[= style ]

TextStyle 和 TextStyleFixed 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
style	整数或者常数，它指定了文本样式，如下“设置值”中所述。
设置值

style 的设置值是：

常数	值	描述
flexTextFlat	0	平面的（普通文本）
flexTextRaised	1	凸起的
flexTextInset	2	下陷的
flexTextRaisedLight	3	轻微凸起的
flexTextInsetLight	4	轻微下陷的
说明

设置值 1 和 2 最好用于大字体和粗体字。设置值 3 和 4 最好用于小的常规字体。


TopRow 属性 (MSFlexGrid)

该属性返回或设置 MSFlexGrid 中的最高的可见行（而不是固定行）。在设计时不可用。

语法

object.TopRow [= number ]

TopRow 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
number	Long 类型。数值表达式，它指定了 MSFlexGrid 中最高的行。
说明

在代码中可以使用这个属性，用程序读出或者设置 MSFlexGrid 的可见的最顶层的行。用 LeftCol 属性来决定 MSFlexGrid 中的最左边的可见列。

设置该属性时，最大的可能的行数是总行数减去 MSFlexGrid 中的可见行数。如果试图将 TopRow 设置为一个更大的行数，那么将导致 MSFlexGrid 将其设置为最大可能值。


Version 属性 (MSFlexGrid)

该属性返回当前加载到内存中的 MSFlexGrid 控件的版本号（一个整数）。

语法

object.Version

object 所在处代表对象表达式，其值是“应用于”列表中的对象。

说明

版本号是个三位整数，其中第一个数字代表主版本号，而最后两个数字则代表次版本号。例如，版本 3.5 将返回 350。


WordWrap 属性 (MSFlexGrid)

该属性返回或者设置一个值，该值决定了：如果单词扩展超越了单元的边界，单元中的文本是否应该在单词之间被截断。回车字符，即 Chr$(13)，也可以迫使线截断。

语法

object.WordWrap [= boolean ]

WordWrap 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
boolean	决定了单元中的文本是否换行。按照缺省规定，这个属性是 False。
说明

如果将 WordWrap 设置为 False，那么 MSFlexGrid 的显示文本速度可能要稍微快些。


FixedAlignment 属性

返回或设置网格中固定单元的数据对齐。

Syntax

object.FixedAlignment (index)= [value]

FixedAlignment 属性的语法包含以下部分：

部分	描述
object	对象表达式，其值是“应用于”列表中的对象。
index	Long 类型。列号。
value	Interger，它指定了固定单元中的数据如何对齐，如下“设置值”中所述。
设置值

style 的设置值是：

常数	值	描述
flexAlignLeftTop	0	左顶部
flexAlignLeftCenter	1	左中
flexAlignLeftBottom	2	左底部
flexAlignCenterTop	3	中顶部
flexAlignCenterCenter	4	中中
flexAlignCenterBottom	5	中底部
flexAlignRightTop	6	右顶部
flexAlignRightCenter	7	右中
flexAlignRightBottom	8	右底部
说明

用 FixedCols 和 FixedRows 属性固定列中的单元。


MSFlexGrid 控件常数

AllowUserResizing 属性

常数	值	描述
flexResizeNone	0	缺省的。不允许重新调整大小。
flexResizeColumns	1	用户可以重新调整单个列的大小。
flexResizeRows	2	用户可以重新调整单个行的大小。
flexResizeBoth	3	用户可以重新调整单个行和列的大小。
Appearance 属性

常数	值	描述
flexFlat	0	将 MSFlexGrid 的总的外观设置为普通的。
flex3D	1	将 MSFlexGrid 的总的外观设置为三维的。
BorderStyle 属性

常数	值	描述
flexBorderNone	0	无边界。
flexBorderSingle	1	单边界。
CellAlignment 属性

常数	值	描述
flexAlignLeftTop	0	左边顶端对齐。
flexAlignLeftCenter	1	左边中间对齐。（对于字符串来说，这是缺省方式）
flexAlignLeftBottom	2	左边底端对齐。
flexAlignCenterTop	3	居中顶端对齐。
flexAlignCenterCenter	4	居中中间对齐。
flexAlignCenterBottom	5	居中底端对齐。
flexAlignRightTop	6	右边顶端对齐。
flexAlignRightCenter	7	右边中间对齐。（对于数字来说，这是缺省方式）
flexAlignRightBottom	8	右边底端对齐。
flexAlignGeneral	9	一般情况。
CellPictureAlignment 属性

常数	值	描述
flexAlignLeftTop	0	左边顶端对齐。
flexAlignLeftCenter	1	左边中间对齐。
flexAlignLeftBottom	2	左边底端对齐。
flexAlignCenterTop	3	居中顶端对齐。
flexAlignCenterCenter	4	居中中间对齐。
flexAlignCenterBottom	5	居中底端对齐。
flexAlignRightTop	6	右边顶端对齐。
flexAlignRightCenter	7	右边中间对齐。
flexAlignRightBottom	8	右边低端对齐。
CellTextStyle、TextStyle 和 TextStyleFixed 属性

常数	值	描述
flexTextFlat	0	规则的文本。
flexTextRaised	1	文本以凸起的外观出现。
flexTextInset	2	文本以下陷的外观出现。
flexTextRaisedLight	3	文本以稍微凸起的外观出现。
flexTextInsetLight	4	文本以稍微下陷的外观出现。
ColAlignment 属性

常数	值	描述
flexAlignCenter	2	列中的数据居中。
flexAlignLeft	0	列中的数据左边对齐。
flexAlignRight	1	列中的数据右边对齐。
FillStyle 属性

常数	值	描述
flexFillSingle	0	对 Text 属性的更改只影响活动单元。
flexFillRepeat	1	对 Text 属性的更改会影响到所有已选定单元。
FocusRect 属性

常数	值	描述
flexFocusNone	0	在当前单元周围没有焦点矩形。
flexFocusLight	1	缺省的。在当前单元周围有细的焦点矩形。
flexFocusHeavy	2	在当前单元周围有粗的焦点矩形。
GridLines 和 GridLinesFixed 属性

常数	值	描述
flexGridNone	0	对于 GridLines 来说是缺省的。在单元之间没有线。
flexGridFlat	1	单元之间线的样式为普通线。
flexGridInset	2	单元之间线的样式为下陷线。
flexGridRaised	3	对于 GridLinesFixed 来说是缺省的。单元之间线的样式为凸起线。
HighLight 属性

常数	值	描述
flexHighlightNever	0	选定单元不突出显示。
flexHighlightAlways	1	缺省方式。选定单元总是突出显示。
flexHighlightWithFocus	2	仅当选定单元在焦点中时，才突出显示。
MergeCells 属性

常数	值	描述
flexMergeNever	0	缺省的。不合并。
flexMergeFree	1	所有 MergeRow（或者 MergeCol）= True 的行和列都可以在任何方向上自由合并。
flexMergeRestrictRows	2	跟自由合并方式一样— 除了一点，那就是各行仅可以合并到左边各单元中。
flexMergeRestrict-Columns	3	跟自由合并方式一样— 除了一点，那就是各列仅可以合并到上边各单元中。
flexMergeRestrictAll	4	所有 MergeRow（或者 MergeCol）= True 的行和列都可以合并到左边或者顶端。
MousePointer 属性

常数	值	描述
flexDefault	0	对 MSFlexGrid 控件的轮廓。
flexArrow	1	箭头指针。
flexCross	2	十字交叉。
flexIBeam	3	适用于文本项的 "I" 形状。
flexIcon	4	正方形中的正方形。
flexSize	5	调整大小的指针，具有向上、向下、向左和向右的箭头。
flexSizeNESW	6	调整大小的指针，箭头指向右上方和左下方。
flexSizeNS	7	调整大小的指针，箭头指向上方和下方。
flexSizeNWSE	8	调整大小的指针，箭头指向左上方和右下方。
flexSizeEW	9	调整大小的指针，箭头指向左方和右方。
flexUpArrow	10	指向上方的箭头。
flexHourGlass	11	沙漏符号。
flexNoDrop	12	“不允许放”指针。
flexCustom	13	自定义样式指针。
PictureType 属性

常数	值	描述
flexPictureColor	0	允许全色彩。
flexPictureMonochrome	1	只允许单色。
SelectionMode 属性

常数	值	描述
flexSelectionFree	0	缺省的。可以选定 MSFlexGrid 中的单个单元。
flexSelectionByRow	1	可以一次选定 MSFlexGrid 中的全部行。
flexSelectionByColumn	2	可以一次选定 MSFlexGrid 中的全部列。
ScrollBars 属性

常数	值	描述
flexScrollBarNone	0	MSFlexGrid 没有滚动条。
flexScrollBarHorizontal	1	MSFlexGrid 有水平滚动条。
flexScrollBarVertical	2	MSFlexGrid 有垂直滚动条。
flexScrollBarBoth	3	缺省的。MSFlexGrid 有水平和垂直滚动条。
Sort 属性

常数	值	描述
flexSortNone	0	不排序。
flexSortGenAscend	1	升序排序，猜出文本是字符串还是数字。
flexSortGenDescend	2	降序排序，猜出文本是字符串还是数字。
flexSortNumAscend	3	升序排序，将字符串转换为数字。
flexSortNumDescend	4	降序排序，将字符串转换为数字。
flexSortStrAscend	5	升序排序，使用不区分大小写的字符串比较方式。
flexSortStrDescend	6	降序排序，使用不区分大小写的字符串比较方式。
flexSortStrAscendCase	7	升序排序，使用区分大小写的字符串比较方式。
flexSortStrDescendCase	8	降序排序，使用区分大小写的字符串比较方式。
flexSortCustom	9	使用 Compare 事件来比较各行。


Change 事件（占位符）


Click 事件（占位符）


DblClick 事件（占位符）


DragDrop 事件（占位符）


DragOver 事件（占位符）


KeyDown 事件（占位符）


KeyPress 事件（占位符）


KeyUp 事件（占位符）


MouseDown 事件（占位符）


MouseMove 事件（占位符）


MouseUp 事件（占位符）


OLECompleteDrag 事件（占位符）


OLEDragDrop 事件（占位符）


OLEDragOver 事件（占位符）


OLEGiveFeedback 事件（占位符）


OLESetData 事件（占位符）


OLEStartDrag 事件（占位符）


Refresh 方法（占位符）


OLEDrag 方法（占位符）


Appearance 属性（占位符）


BackColor 属性（占位符）


Caption 属性（占位符）


Enabled 属性（占位符）


Font 属性（占位符）


ForeColor 属性（占位符）


IntegralHeight 属性（占位符）


Locked 属性（占位符）


MouseIcon 属性（占位符）


MousePointer 属性（占位符）


OLEDragMode 属性（占位符）


OLEDropMode 属性（占位符）


SelLength 属性（占位符）


SelStart 属性（占位符）


SelText 属性（占位符）


Style 属性（占位符）


Text 属性（占位符）


未找到关键字

不能在 Visual Basic 帮助中找到已选择的关键字。可能是该关键字拼写有误、过多或过少选择文本、或所要寻求帮助的词不是有效的 Visual Basic 关键字。

要获得关于特定关键字的帮助，最简单的方法就是把插入点放到想要获得帮助的关键字内的任何地方，然后按 F1 键。不必选中该关键字。事实上，如果只选中了关键字的一部分，或超过了一个单词，“帮助”将不能找到要查找的内容。

要使用内置的“帮助”查找对话框，请按下工具栏上的“帮助主题”按钮。


Left、Top 属性（占位符）


Height、Width 属性（占位符）


Tag 属性（占位符）


ToolTipText 属性（占位符）


Count 属性（占位符）


Item 方法（占位符）


Hwnd 属性（占位符）


TabStop 属性（占位符）


Visible 属性（占位符）


Picture 属性（占位符）


Max, Min 属性（占位符）


Add 方法（占位符）


Clear 方法（占位符）


Container 属性（占位符）


控件集合（占位符）


Copies 属性（占位符）


DataBinding 对象（占位符）


DataBindings 集合（占位符）


Filename 属性（占位符）


FontBold、FontItalic、FontStrikeThru 属性（占位符）


FontName 属性（占位符）


FontSize 属性（占位符）


GetData 方法（占位符）


GetFormat 方法（占位符）


HelpFile 属性（占位符）


Item 属性（占位符）


Remove 方法（占位符）


SetData 方法（占位符）


Align 属性（占位符）


DragIcon 属性（占位符）


DragMode 属性（占位符）


HelpContextID 属性（占位符）


TabIndex 属性（占位符）


Alignment 常数（占位符）


Border 属性常数（占位符）


BorderStyle 常数（占位符）


BorderStyle 属性（ActiveX 控件）（占位符）


Clear 方法（ActiveX 控件）（占位符）


Clipboard 对象常数（占位符）


Color 常数（占位符）


CommonDialog 控件常数（占位符）


CommonDialog 错误常数（占位符）


Control 常数（占位符）


DataBindings 属性（占位符）


DDE 常数（占位符）


Drag-and-Drop 常数（占位符）


Drawing 常数（占位符）


FetchVerbs 方法（占位符）


Form 常数（占位符）


Graphics 常数（占位符）


Grid 控件常数（占位符）


Help 常数（占位符）


HideSelection 属性（ActiveX 控件）（占位符）


HideSelection 属性（占位符）


Image 属性（ActiveX 控件）（占位符）


ImageList 属性（ActiveX 控件）（占位符）


Index 属性（ActiveX 控件）（占位符）


Index 属性（占位符）


Key Code 常数（占位符）


Key 属性（ActiveX 控件）（占位符）


Menu Accelerator 常数（占位符）


Menu Control 常数（占位符）


Miscellaneous 常数（占位符）


MousePointer 常数（占位符）


OLE Container Control 常数（占位符）


Picture Object 常数（占位符）


Printer Object 常数（占位符）


RasterOp 常数（占位符）


Remove 方法（ActiveX 控件）（占位符）


ShowInTaskbar 属性（占位符）


ShowTips 属性（ActiveX 控件）（占位符）


ShowWhatsThis 方法（占位符）


Text 属性（ActiveX 控件）（占位符）


Value 属性（ActiveX 控件）（占位符）


Variant Type 常数（占位符）


Visual Basic 常数（占位符）


WhatsThisButton 属性（占位符）


WhatsThisHelp 属性（占位符）


WhatsThisHelpID 属性（占位符）


WhatsThisMode 方法（占位符）


Windows 95 控件常数（占位符）


ColIsVisible 属性（占位符）


ColPos 属性（占位符）


DataObject 对象（占位符）


DataObjectFiles 集合（占位符）


DataSource 属性（占位符）


Drag 方法（占位符）


DrawMode 属性（占位符）


FixedAlignment 属性（占位符）


GotFocus 事件（占位符）


GridLineWidth 属性（占位符）


Index 属性（控件数组）（占位符）


LostFocus 事件（占位符）


Move 方法（占位符）


Name 属性（占位符）


Object 属性（占位符）


Parent 属性（占位符）


RowColChange 事件（占位符）


RowIsVisible 属性（占位符）


RowPos 属性（占位符）


SetFocus 方法（占位符）


ZOrder 方法（占位符）


Files 方法（占位符）


Connect 事件（占位符）


HScrollSmallChange、VScrollSmallChange 属性（占位符）


MinHeight、MinWidth 属性（占位符）


“属性页”对话框（占位符）


RemoteHost 属性（占位符）


RemotePort 属性（占位符）


ViewportHeight、ViewportLeft、ViewportTop、ViewportWidth 属性（占位符）


Resync 方法（远程数据）（占位符）


ContainedVBControls 集合（占位符）


Member 对象（占位符）


Members 集合（占位符）


VBComponentsEvents 对象（占位符）


VBProjectsEvents 对象（占位符）


Files 属性（占位符）


Alignment 属性（占位符）


AboutBox 方法（占位符）


Col, Row 属性（占位符）


RowHeight 属性（占位符）


Scroll 事件（占位符）


ScrollBars 属性（占位符）


SelEndCol, SelStartCol, SelEndRow, SelStartRow 属性（占位符）


Appearance 属性 (ActiveX 控件) (placeholder)


BackColor, ForeColor 属性 (ActiveX 控件) (placeholder)


BorderStyle 常数 (ActiveX 控件) (placeholder)


Caption 属性 (ActiveX 控件) (placeholder)


Change 事件 (ActiveX 控件) (placeholder)


Clear 方法 (ActiveX 控件) (placeholder)


Click 事件 (ActiveX 控件) (placeholder)


Clipboard Object 常数 (ActiveX 控件) (placeholder)


Count 属性 (ActiveX 控件) (placeholder)


DataObject Object (ActiveX 控件) (placeholder)


DataObjectFiles 集合 (ActiveX 控件) (placeholder)


DataSource 属性 (ActiveX 控件) (placeholder)


DblClick 事件 (ActiveX 控件) (placeholder)


Drag-and-Drop 常数 (ActiveX 控件) (placeholder)


Enabled 属性 (ActiveX 控件) (placeholder)


FetchVerbs 方法 (ActiveX 控件) (placeholder)


Files 方法 (ActiveX 控件) (placeholder)


Font 属性 (ActiveX 控件) (placeholder)


FontName 属性 (ActiveX 控件) (placeholder)


FontSize 属性 (ActiveX placeholder)


GetData 方法 (ActiveX 控件) (placeholder)


GetFormat 方法 (ActiveX 控件) (placeholder)


HideSelection 属性 (ActiveX 控件) (complaceholder)


hWnd 属性 (ActiveX 控件) (placeholder)


Item 方法 (ActiveX 控件) (placeholder)


Key Code 常数 (ActiveX 控件) (placeholder)


Key 属性 (ActiveX 控件) (complaceholder)


KeyDown, KeyUp 事件 (ActiveX 控件) (placeholder)


KeyPress 事件 (ActiveX 控件) (placeholder)


Max, Min 属性 (ActiveX 控件) (placeholder)


MouseDown, MouseUp 事件 (ActiveX 控件) (placeholder)


MouseIcon 属性 (ActiveX 控件) (placeholder)


MouseMove 事件 (ActiveX 控件) (placeholder)


MousePointer 常数 (ActiveX 控件) (placeholder)


MousePointer 属性 (ActiveX 控件) (placeholder)


OLECompleteDrag 事件 (ActiveX 控件) (placeholder)


OLEDrag 方法 (ActiveX 控件) (placeholder)


OLEDragDrop 事件 (ActiveX 控件) (placeholder)


OLEDragMode 属性 (ActiveX 控件) (placeholder)


OLEDragOver 事件 (ActiveX 控件) (placeholder)


OLEDropMode 属性 (ActiveX 控件) (placeholder)


OLEGiveFeedback 事件 (ActiveX 控件) (placeholder)


OLESetData 事件 (ActiveX 控件) (placeholder)


OLEStartDrag 事件 (ActiveX 控件) (placeholder)


Picture 属性 (ActiveX 控件) (placeholder)


属性页对话框 (ActiveX 控件) (placeholder)


RemoteHost 属性 (ActiveX 控件) (placeholder)


RemotePort 属性 (ActiveX 控件) (placeholder)


SelLength, SelStart, SelText 属性 (ActiveX 控件) (placeholder)


SetData 方法 (ActiveX 控件) (placeholder)


ShowTips 属性 (ActiveX 控件) (complaceholder)


Text 属性 (ActiveX 控件) (complaceholder)


Value 属性 (ActiveX 控件) (complaceholder)


hDC 属性 (ActiveX 控件) (complaceholder)


Height, Width 属性 (ActiveX 控件) (complaceholder)


Index 属性 (ActiveX 控件) (complaceholder)


Left, Top 属性 (ActiveX 控件) (complaceholder)


Tag 属性 (ActiveX 控件) (complaceholder)


Visible 属性 (ActiveX 控件) (complaceholder)


Remove 方法 (ActiveX 控件) (complaceholder)


Object 属性 (ActiveX 控件) (placeholder)


属性页 (ActiveX 控件) (placeholder)


字体不存在 (错误 24574) (公用对话框控件) (complaceholder)


帮助内容placeholder


BorderStyle 属性 (ActiveX 控件) (placeholder)


RightToLeft 属性 (ActiveX 控件) (placeholder)


Refresh 方法 (ActiveX 控件) (placeholder)