分享

VB-MSFlexGrid控件-4

 网络摘记 2014-04-14
  Col和Row属性(MSHFlexGrid)
这两个属性返回或设置MSHFlexGrid中活动单元的坐标。在设计时不可用。
应用于
MSHFlexGrid控件,MSFlexGrid控件。
语法
object.Col[=number]
object.Row[=number]
Col和Row的语法包含以下部分:
部分描述
object对象表达式,其值是“应用于”列表中的对象
numberLong类型值。它指定了活动单元的位置
说明
可以用这些属性来指定MSHFlexGrid中的单元,或者找到包含当前单元的那个行或者列。行和列是从0开始计数的,对于行来说,以顶端为起始,而对于列来说,则以左边为起始。
对这些属性进行设置会自动对RowSel和ColSel进行重置,这样,所选定的就变成了当前单元。因此,为了指定一个块选定,必须首先对Row和Col进行设置,然后对RowSel和ColSel进行设置。
当前单元的值(由Col和Row的设置值所决定的),就是包含在那个单元中的文本。可以用TextMatrix属性在不改变已选定的Row和Col属性的情况下,对单元的值进行修改。
请参阅
Cols,Rows属性(MSHFlexGrid),ColSel,RowSel属______性,SelChange事件(MSHFlexGrid),Sort属性(MSHFlexGrid),Text属性(MSHFlexGrid),TextMatrix属性,Bands属性(MSHFlexGrid)。
示例
在该示例中,将“Here”放到当前单元中,然后将活动单元更改为第3行中的第3个单元,并将“There”放到那个单元中。可以单击F5键来运行该程序,然后单击网格。
注意:如果您使用MSFlexGrid,请用“MSFlexGrid1”替换“MSHFlexGrid1”。
Private Sub Form1_Load()
MSHFlexGrid1.Rows=8
MSHFlexGrid1.Cols=5
End Sub
Private Sub MSHFlexGrid1_Click()
'将文本放到当前单元中。
MSHFlexGrid1.Text="Here"
'将文本放到第3行,第3列。
MSHFlexGrid1.Col=2
MSHFlexGrid1.Row=2
MSHFlexGrid1.Text="There"
End Sub
ColAlignmentFixed属性
返回或设置MSHFlexGrid的一列中固定单元格中的数据的对齐方式。
应用于
MSHFlexGrid控件。
语法
object.ColAlignmentFixed(index)[=value]
ColAlignmentFixed属性的语法包含以下几个部分:
部分描述
object一个对象表达式,其值是“应用于”列表中的一个对象
index一个Long数值,它指定了列
value一个整数,它确定固定单元格中的数据的对齐方式,如“设置”中所示
设置
value的设置值包括:
常量值描述
flexAlignLeftTop0单元格的内容左、顶部对齐
flexAlignLeftCenter1单元格的内容左、居中对齐
flexAlignLeftBottom2单元格的内容左、底部对齐
flexAlignCenterTop3单元格的内容居中、顶部对齐
flexAlignCenterCenter4单元格的内容居中、居中对齐
flexAlignCenterBottom5单元格的内容居中、底部对齐
flexAlignRightTop6单元格的内容右、顶部对齐
flexAlignRightCenter7单元格的内容右、居中对齐
flexAlignRightBottom8单元格的内容右、底部对齐
说明
可以使用FixedCols和FixedRows属性来定义一列中的单元格。
请参阅
FixedCols,FixedRows属性(MSHFlexGrid)。
ColAlignment、ColAlignmentBand、ColAlignmentHeader
属性(MSHFlexGrid)
返回或者设置列中数据的对齐方式。该列可以是一个标准列、带区中的一列或者标头中的一列。该属性在设计时是不可使用的(除非通过FormatString属性间接地使用)。
应用于
MSHFlexGrid控件,MSFlexGrid控件。
语法
object.ColAlignment(number)[=value]
object.ColAlignmentBand(number)[=value]
object.ColAlignmentHeader(number)[=value]
ColAlignment、ColAlignmentBand和ColAlignmentHeader属性的语法包括:
部分描述
Object一个对象表达式,其值是“应用于”列表中的一个对象
部分描述
Number一个Long数值,它指定了列在MSHFlexGrid中的编号
value一个整数或者常量,它指定了列中的数据的对齐方式,如“设
置”中所示
设置
value的设置值包括:
常量值描述
flexAlignLeftTop0单元格的内容左、顶部对齐
flexAlignLeftCenter1字符串的缺省对齐方式。单元格的内容左、居中对齐
flexAlignLeftBottom2单元格的内容左、底部对齐
flexAlignCenterTop3单元格的内容居中、顶部对齐
flexAlignCenterCenter4单元格的内容居中、居中对齐
flexAlignCenterBottom5单元格的内容居中、底部对齐
flexAlignRightTop6单元格的内容右、顶部对齐
flexAlignRightCenter7数值的缺省对齐方式。单元格的内容右、居中对齐
flexAlignRightBottom8单元格的内容右、底部对齐
flexAlignGeneral9单元格的内容按一般方式进行对齐。字符串按“左、居中”显示,数字按“右、居中”显示
说明
任何一列都可以有与其他列不同的对齐方式。ColAlignment属性将影响指定列的所有单元格,包括位于固定行中的那些单元格。
如果需要设置单个单元格的对齐方式,可以使用CellAlignment属性。如果需要在设计时设置列的对齐方式,可以使用FormatString属性。
如果MSHFlexGrid处于垂直模式,那么设置ColAlignment(3)可以影响到多个带区中的若干列。
请参阅
FormatString属性,CellAlignment属性。
示例
下面的代码用常量值将第3列的对齐方式设置为“右,中”对齐。
注意:如果您使用MSFlexGrid,请用“MSFlexGrid1”替换“MSHFlexGrid1”。
Sub Form1_Load()
MSHFlexGrid1.ColAlignment(3)=flexAlignRightCenter
End Sub
ColData和RowData、BandData属性(MSHFlexGrid)
注意:如果您使用MSFlexGrid,请用“MSFlexGrid1”替换“MSHFlexGrid1”。
Private Sub Form_Click
SetPicture1.Picture=MSHFlexGrid1.Picture
End Sub
这些属性返回或设置跟每个行和列相关联的一个任意的long类型的值。在设计时不可用。
应用于
MSHFlexGrid控件,MSFlexGrid控件。
语法
object.ColData(number)[=value]
object.RowData(number)[=value]
object.BandData(number)[=value]
ColData、RowData和BandData属性的语法有如下部分:
部分描述
object对象表达式,其值是“应用于”列表中的对象
numberLong类型值。在保存或者检索数据的MSHFlexGrid控件中的行号或
者列号
valueLong类型值。它指定ColData或者RowData数组的内容
说明
可以用RowData和ColData属性来使指定的数值跟MSHFlexGrid控件上的每一行或者列相关联,然后就可以在代码中使用这些数值来识别各项。
例如,可以将包含总数的行添加到MSHFlexGrid中,并通过将它们的RowData属性设置为一个非0值来识别这些行。为了以后对这些总数进行更新,可以通过扫描RowData数组并删除相应的行来删除过时的总数。
对RowData属性的另一个典型应用是将一个索引放到数据结构的数组中,这些数据结构跟在每一行上所描述的各项相关联。
示例
下列代码显示了您如何使用PictureType属性捕获内存外错误并自动切换到单色模式。此外,还显示了如何在MSHFlexGrid内部创建一个图片,该图片仅包含当前选择。
Sub CopySelectedPictureToClipboard(myFlexAs_
MSHFlexGrid)
DimiAsInteger,trAsLong,lcAsLong,_
hlAsInteger
'准备操作。
MyFlex.Redraw=False'消除抖动。
hl=MyFlex.HighLight'保存当前设置。
tr=MyFlex.TopRow
lc=MyFlex.LeftCol
MyFlex.HighLight=0'在图片上没有突出显示。
'隐藏未选择行和列。
'(在RowData/ColData
'属性中保存原始大小。)
Fori=MyFlex.FixedRowsToMyFlex.Rows-1
IfiMyFlex.RowSelThen
MyFlex.RowData(i)=MyFlex.RowHeight(i)
MyFlex.RowHeight(i)=0
EndIf
Next
Fori=MyFlex.FixedColsToMyFlex.Cols-1
IfiMyFlex.ColSelThen
MyFlex.ColData(i)=MyFlex.ColWidth(i)
MyFlex.ColWidth(i)=0
EndIf
Next
'滚动到左上角。
MyFlex.TopRow=MyFlex.FixedRows
MyFlex.LeftCol=MyFlex.FixedCols
'复制图片。
clipboard.Clear
OnErrorResumeNext
MyFlex.PictureType=0'彩色。
clipboard.SetDataMyFlex.Picture
IfError<>0Then
MyFlex.PictureType=1'单色。
clipboard.SetDataMyFlex.Picture
Endif
'恢复控件。
Fori=MyFlex.FixedRowsToMyFlex.Rows-1
IfiMyFlex.RowSelThen
MyFlex.RowHeight(i)=MyFlex.RowData(i)
EndIf
Next
Fori=MyFlex.FixedColsToMyFlex.Cols-1
IfiMyFlex.ColSelThen
MyFlex.ColWidth(i)=MyFlex.ColData(i)
EndIf
Next
MyFlex.TopRow=tr
MyFlex.LeftCol=lc
MyFlex.HighLight=hl
MyFlex.Redraw=True
EndSub
下列示例显示了如何将MSHFlexGrid的Picture属性设置为一个PictureBox控件:
注意:如果您使用MSFlexGrid,请用“MSFlexGrid1”替换“MSHFlexGrid1”。
PrivateSubForm_Click()
SetPicture1.Picture=MSHFlexGrid1.Picture
EndSub
ColHeader属性(MSHFlexGrid)
指出是否为指定的带区显示标头。
应用于
MSHFlexGrid控件。
语法
object.ColHeader(value)
ColHeader属性语法有如下部分:
部分描述
object一个对象表达式,其值为“应用于”列表中的一个对象
value可选的。一个Long值,指出是否显示包含标头的带区,如“设置”中所描述的
设置
value的设置值是:
设置值描述
flexColHeaderOn0为每一个带区显示标头
flexColHeaderOff1不为带区显示标头
flexColHeaderOnce2显示带区的标头。如果带区是折叠的,只显示一个标头。不显示重复标头
ColHeaderCaption属性(MSHFlexGrid)
指定需要显示在指定的列和带区的标头中的标题。
应用于
MSHFlexGrid控件。
语法
object.ColHeaderCaption(number,index)[=string]
ColHeaderCaption属性的语法包含以下几个部分:
部分描述
Object一个对象表达式,其值是“应用于”列表中的一个对象
Number一个Long数值,它指明的带区中包含了需要设置标题的列
Index一个Long数值,它指明了特定的列
String一个字符串表达式,它指定了一种可用的字体类型
ColIsVisible属性
该属性返回或设置一个值,该值指示了指定列在当前是否是可见的。
应用于
MSHFlexGrid控件,MSFlexGrid控件。
语法
object.ColIsVisible(index)[=boolean]
ColIsVisible属性的语法包含以下部分:
部分描述
Object对象表达式,其值是“应用于”列表中的对象
Index一个Long值,它指定列
Boolean一个布尔表达式,指出指定的列是否可见
设置
Boolean的设置值是:
设置值描述
True缺省的。指定列在当前是可见的
False指定列在当前是不可见的
Collapse事件(MSHFlexGrid)
当用户在网格内折叠一行时发生。MSHFlexGrid的Col和Row属性包含用于折叠带区的单元格。
应用于
MSHFlexGrid控件。
语法
PrivateSubobject_Collapse(Boolean)
Collapse事件的语法包含如下部分:
部分描述
Object一个对象表达式,其值为“应用于”列表中的一个对象
Boolean一个布尔表达式。如果把Cancel设置为True,折叠被取消
CollapseAll方法(MSHFlexGrid)
在MSHFlexGrid内折叠指定带区的所有行。
应用于
MSHFlexGrid控件。
语法
object.CollapseAll(number)
CollapseAll属性的语法包含如下部分:
部分描述
object一个对象表达式,其值为“应用于”列表中的一个对象
number可选的。一个Long值,它指定包含要折叠的行的带区
ColPos属性
以缇为单位,返回控件的左上角和一个指定列的左上角之间的距离。
应用于
MSHFlexGrid控件。
语法
object.ColPos(index)
ColPos属性的语法包含如下部分:
部分描述
object一个对象表达式,其值为“应用于”列表中的一个对象
index一个Long值,它指定列
ColPosition,RowPosition属性
ColPosition—设置一个MSHFlexGrid列的位置,允许移动列到指定的位置。
RowPosition—设置一个MSHFlexGrid行的位置,允许移动行到指定的位置。
应用于
MSHFlexGrid控件,MSFlexGrid控件。
语法
object.ColPosition(index,number)[=value]
object.RowPosition(number)[=value]
注意:由于这一控件的限制,上面的ColPosition语法不能在
MSFlexGrid中使用。如果正在使用MSFlexGrid,采用以下语法
object.ColPosition(number)[=value]。
ColPosition和RowPosition属性的语法包含如下部分:
部分描述
object一个对象表达式,其值为“应用于”列表中的一个对象
index一个Long值,它指定要移动的列
注意不可应用于MSFlexGri
number一个Long值,它指定包含要移动的列的带区。可选的
注意在MSFlexGrid中,这是要移动的列或行的数
value整数。一个数值表达式,它指定列或行的新的位置
说明
在MSHFlexGrid中,当BandNumber未指定时,缺省为0。因此,当网格未绑定到一个分层结构的记录集时,BandNumber为0和不指定BandNumber两者都会得到相同的结果。注意BandNumber是与MSFlexGrid向后兼容的一个可选的参数。
索引和设置必须对应有效的行或列数(在0到Rows–1或Cols–1范围),否则会产生一个错误。
当一个行或列被使用RowPosition和ColPosition属性移动时,所有的格式化的信息随着它一起移动。这包括宽、高、对齐、颜色和字体属性。如果想只移动文本,可以使用Clip属性。
请参阅
Cols,Rows属性(MSHFlexGrid),Clip属性(MSHFlexGrid)。
示例
在实现时,当用户单击某列时,下列代码将引起这列移动到第一位置(最左边一列)。
注意:如果正在使用MSFlexGrid,用“MSFlexGrid1”代替“MSHFlexGrid1”。
SubMSHFlexGrid1_Click()
MSHFlexGrid1.ColPosition(MSFlexGrid1.MouseCol)=0
EndSub
Cols,Rows属性(MSHFlexGrid)
Cols—返回或设置在一个MSHFlexGrid中的总列数。
Rows—返回或设置在一个MSHFlexGrid中的总行数。Rows属性也返回
或设置在MSHFlexGrid中的每一个带区中的总列数。
注意:MSFlexGrid不包含带区。如果在MSFlexGrid中使用Rows属性编程,只能返回或设置总列数或总行数。也由于这一控件的限制,下面的Rows语法不能在MSFlexGrid中使用。如果正在使用MSFlexGrid,
采用如下语法
object.Rows[=value]。
应用于
MSHFlexGrid控件,MSFlexGrid控件。
语法
object.Cols[=value]
object.Rows(number)[=value]
Cols和Rows属性的语法包含如下部分:
部分描述
object一个对象表达式,其值为“应用于”列表中的一个对象
number一个Long值,它指定获取或是设置总列数的带区。可选

注意这不可应用于MSFlexGri
value一个Long值,它指定列数或行数
说明
可以使用这些属性在运行时动态地扩充或收缩MSHFlexGrid。行和列的最小数是0。最大数受计算机的可用内存限制。Cols的值必须至少比FixedCols的值大一,除非它们两者都被设置为0。Rows的值必须至少比FixedRows的值大一,除非它们两者都被设置为0。当number未被指定时,缺省为0。因此,当MSHFlexGrid未被绑定到一个分层结构的记录集时,使用0或不指定number两者都会得到相同的结果。注意number是与MSFlexGrid向后兼容的一个可选的参数。
请参阅
ColPosition,RowPosition属性,FormatString属性,Col,Row属性
(MSHFlexGrid)。
示例
下面的示例把单词“Here”放进当前单元,更改活动单元为第三行的第三单元格,然后把“There”放进那个单元。要运行该示例,按F5键,然后单击MSHFlexGrid。
注意:如果正在使用MSFlexGrid,用“MSFlexGrid1”代替“MSHFlexGrid1”。
PrivateSubForm_Load()
MSHFlexGrid1.Rows=8
MSHFlexGrid1.Cols=5
EndSub
PrivateSubMsFlexGrid1_Click()
'把文本放在当前单元中。
MSHFlexGrid1.Text="Here"
'把文本放在第三行,第三列。
MSHFlexGrid1.Col=2
MSHFlexGrid1.Row=2
MSHFlexGrid1.Text="There"
EndSub
ColSel、RowSel属性
ColSel—为一定范围的单元格返回或设置的起始列和或终止列。
RowSel—为一定范围的单元格返回或设置的起始行和或终止行。
这些属性在设计时不可用。
应用于
MSHFlexGrid控件,MSFlexGrid控件。
语法
object.ColSel[=value]
object.RowSel[=value]
ColSel和RowSel语法包含如下部分:
部分描述
object一个对象表达式,其值为“应用于”列表中的一个对象
value一个Long值,为一定范围的单元格指定起始行或列,或者
指定终止行或列
说明
可以使用这些属性编程选择MSHFlexGrid的一个特定区域,或读出用户选择进入代码的区域的维数。
MSHFlexGrid游标在Row、Col位置的单元格中。MSHFlexGrid选择的是在行Row和RowSel之间以及列Col和ColSel之间的区域。注意RowSel可能在Row的上面或下面,而ColSel可能在Col的左边或右边。无论什么时候设置Row和Col属性,RowSel和ColSel都自动地重新设置,因此游标变为当前选择。要从代码中选择一块单元格,必须首先设置Row和Col属性,然后设置RowSel和ColSel。
请参阅
SelChange事件(MSHFlexGrid),Sort属性(MSHFlexGrid),Col,Row属性(MSHFlexGrid)。
示例
下面的代码把ColSel属性的value返回到MSHFlexGrid1的第一单元格中。这个值随着用户单击不同的单元组的选择而更改。
注意:如果正在使用MSFlexGrid,用“MSFlexGrid1”代替“MSHFlexGrid1”。
PrivateSubMSHFlexGrid1_MouseUp_
(ButtonAsInteger,ShiftAsInteger,xAsSingle,_
yAsSingle)
MSHFlexGrid1.Text=MSHFlexGrid1.ColSel
EndSub
ColWidth属性(MSHFlexGrid)
以缇为单位,返回或设置指定带区中的列宽。这一属性在设计时不可用。
注意:当使用MSFlexGrid时,这一属性以缇为单位返回或设置指定列的宽度。由于这一控件的限制,下面的ColWidth语法也不能在MSFlexGrid中使用。如果正在使用MSFlexGrid,采用如下语法
object.ColWidth(number)[=value]。
应用于
MSHFlexGrid控件,MSFlexGrid控件。
语法
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向后兼容的一个可选的参数。
请参阅
FormatString属性,AllowUserResizing属性。
示例
下面的代码设置第一列尺寸的value。如果AllowUserResizing属性为
True,该值按照用户调整Column1的大小而更改。
注意:如果正在使用MSFlexGrid,用“MSFlexGrid1”代替
“MSHFlexGrid1”。
SubForm1_Load()
MSHFlexGrid1.AllowUserResizing=True
EndSub
SubMSHFlexGrid1_MouseUp(ButtonAsInteger,ShiftAs_
Integer,XAsSingle,YAsSingle)
MSHFlexGrid1.Text=MSHFlexGrid1.ColWidth(0)
EndSub

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多