请开始学习VB,很多问题不懂,请各位大哥大姐指教。 1)MSHFLEXGRID控件如何设置行高、列高及对齐方式
发布网友
发布时间:2022-04-30 06:40
我来回答
共1个回答
热心网友
时间:2023-10-19 20:35
-------------------------------------------------------------------------------------------------
RowHeight 属性 (MSHFlexGrid)
--------------------------------------------------------------------------------------------
以缇为单位,返回或设置指定行的高度。这一属性在设计时不可用。
语法
object.RowHeight(number) [=value]
RowHeight 属性的语法包含如下部分:
部分 描述
object 一个对象表达式,其值为“应用于”列表中的一个对象。
number 一个整数,设置 MSHFlexGrid 中的行号,或为 -1 来立即设置所有行。
value 一个单精度数值表达式,以缇为单位指定行的高度。
说明
可以设置 RowHeight 为 0 创建不可见的行,或为 –1 来重新设置行的高度为它的缺省值。缺省的行的高度根据当前字体尺寸改变。
RowHeight 属性独立于窗体的缩放模式。
------------------------------------------------------------------------------------------------------
ColWidth 属性 (MSHFlexGrid)
-------------------------------------------------------------------------------------------------
以缇为单位,返回或设置指定带区中的列宽。这一属性在设计时不可用。
注意 当使用 MSFlexGrid 时,这一属性以缇为单位返回或设置指定列的宽度。由于这一控件的*,下面的 ColWidth 语法也不能在 MSFlexGrid 中使用。如果正在使用 MSFlexGrid,采用如下语法:object.ColWidth(number) [= value]
语法
object.ColWidth(index, number) [= value]
ColWidth 属性的语法包含如下部分:
部分 描述
object 一个对象表达式,其值为“应用于”列表中的一个对象。
index 一个 Long值,它指定要更改哪一列的宽度。
注意 这是不可应用于 MSFlexGrid。
number 一个 Long值,指定包含列的带区。可选的。
注意 在 MSFlexGrid 中,它是一个指定列的数值表达式。
value 一个数值表达式,它以缇为单位指定特定列的宽度。
说明
可以使用这一属性在运行时设置任何列的宽度。对于在设计时设置列宽的指令,请参阅 FormatString 属性。
可以通过把 ColWidth 设置为 0 来创建不可见列,或设置为 –1 重新设置列宽为它的缺省值(它取决于当前字体的尺寸)。
当 number 没有指定时,它缺省为 0。因此,当 MSHFlexGrid 未被绑定到分层结构的记录集时,使用 0 和未指定 number 两者都会得到相同的结果。注意 number 是与 MSFlexGrid 向后兼容的一个可选的参数。
------------------------------------------------------------------------------------------------------------------
ColAlignment、ColAlignmentBand、ColAlignmentHeader 属性 (MSHFlexGrid)
-------------------------------------------------------------------------------------------------------------------
返回或者设置列中数据的对齐方式。该列可以是一个标准列、带区中的一列或者标头中的一列。该属性在设计时是不可使用的(除非通过 FormatString 属性间接地使用)。
语法
object.ColAlignment(number) [=value]
object.ColAlignmentBand(number) [=value]
object.ColAlignmentHeader(number) [=value]
ColAlignment、ColAlignmentBand 和 ColAlignmentHeader 属性的语法包括:
部分 描述
object 一个对象表达式,其值是“应用于”列表中的一个对象。
number 一个 Long 数值,它指定了列在 MSHFlexGrid 中的编号。
value 一个整数或者常数,它指定了列中的数据的对齐方式,如“设置值”中所示。
设置值
value 的设置值包括:
常数 值 描述
flexAlignLeftTop 0 单元格的内容左、顶部对齐。
flexAlignLeftCenter 1 字符串的缺省对齐方式。单元格的内容左、居中对齐。
flexAlignLeftBottom 2 单元格的内容左、底部对齐。
flexAlignCenterTop 3 单元格的内容居中、顶部对齐。
flexAlignCenterCenter 4 单元格的内容居中、居中对齐。
flexAlignCenterBottom 5 单元格的内容居中、底部对齐。
flexAlignRightTop 6 单元格的内容右、顶部对齐。
flexAlignRightCenter 7 数值的缺省对齐方式。单元格的内容右、居中对齐。
flexAlignRightBottom 8 单元格的内容右、底部对齐。
flexAlignGeneral 9 单元格的内容按一般方式进行对齐。字符串按“左、居中”显示,数字按“右、居中”显示。
说明
任何一列都可以有与其他列不同的对齐方式。ColAlignment 属性将影响指定列的所有单元格,包括位于固定行中的那些单元格。
如果需要设置单个单元格的对齐方式,可以使用 CellAlignment 属性。如果需要在设计时设置列的对齐方式,可以使用 FormatString 属性。
如果 MSHFlexGrid 处于垂直模式,那么设置 ColAlignment(3) 可以影响到多个带区中的若干列。追问能否举例说明代码怎么写
追答在表单上添加Text1、Text2、Combo1和MSHFlexGrid1,粘贴以下代码,然后运行:
Option Explicit
Private Sub Combo1_Click()
MSHFlexGrid1.ColAlignment(1) = Combo1.ListIndex
End Sub
Private Sub Form_Load()
Dim i As Integer, j As Integer
With MSHFlexGrid1
.Rows = 5
.Cols = 4
For i = 0 To .Rows - 1
For j = 0 To .Cols - 1
.TextMatrix(i, j) = (i + 1) * (j + 1)
Next
Next
Text1 = .RowHeight(1)
Text2 = .ColWidth(1)
End With
With Combo1
.Clear
.AddItem "左,顶部对齐"
.AddItem "左,居中对齐"
.AddItem "左,底部对齐"
.AddItem "居中,顶部对齐"
.AddItem "居中,居中对齐"
.AddItem "居中,底部对齐"
.AddItem "右,顶部对齐"
.AddItem "右,居中对齐"
.AddItem "右,底部对齐"
.AddItem "一般方式进行对齐"
End With
End Sub
Private Sub Text1_Change()
If IsNumeric(Text1) Then
MSHFlexGrid1.RowHeight(1) = Val(Text1) '设置第一行高度
End If
End Sub
Private Sub Text2_Change()
If IsNumeric(Text2) Then
MSHFlexGrid1.ColWidth(1) = Val(Text2) '设置第一列宽度
End If
End Sub