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 CopySelectedPictureTo 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 |
|
来自: 网络摘记 > 《MsFlexGrid》