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》