創建一個Split對象
在設計時,可以創建一個拆分,具體步驟是:右鍵單擊網格,單擊“編輯”,再單擊右鍵,然后單擊“拆分”。通過右鍵單擊該控件,并單擊“屬性”來顯示“屬性頁”對話框,可以編輯這個拆分。可以使用“拆分”選項卡來自定義拆分。要刪除一個拆分,右鍵單擊該拆分,并單擊“刪除”。
在運行時,最終用戶也可以通過單擊位于這個網格控件的左下邊的右邊的選項卡,以手工方式來拆分該網格(除非不允許這個操作),如下圖所示:
默認情況下,DataGrid控件包含一個Split對象。防止最終用戶添加拆分的代碼為:
DataGrid1.Splits(0).AllowSizing=False
在程序中添加和刪除拆分
DataGrid控件包含一個Split對象的集合。要在程序中添加拆分,可以使用Add方法,如下所示:
DataGrid1.Splits.Add1
注意Add方法需要新的拆分索引作為其參數。要添加一個拆分,應將這個索引參數設置為Splits集合的Count屬性值。
使用Split集合的Add方法,可以在程序中按照所實際需要添加拆分。由于添加多于兩個以上的拆分將使網格很難使用,可以使用該集合的Count屬性來限制拆分的數目。
IfDataGrid1.Splits.Count<3Then'添加一個拆分。
DataGrid1.Splits.AddDataGrid1.Splits.Count
EndIf
使拆分同步
當拆分多于一個時,可能希望控制這些拆分如何滾動。例如,在一個具有三個拆分的網格中,可以決定只讓第一個和第三個拆分同步,而讓中間的拆分獨立地滾動。要同步任何兩個(或多個)拆分,只需將每個Split對象的ScrollGroup屬性設置為同一個值。
'使第一個和第三個Split對象同步。
WithDataGrid1
.Splits(0).ScrollGroup=1
.Splits(1).ScrollGroup=2
.Splits(2).ScrollGroup=1
EndWith
通過設置Scrollbars屬性,使同步的拆分組只顯示一個滾卷條,從而進一步自定義拆分的外觀。
控制Tab鍵和箭頭鍵的行為
使用WrapCellPointer、TabAcrossSplits、以及TabAction屬性,可以決定當最終用戶按下tab鍵或箭頭鍵時網格的行為。
在這三個屬性中,TabAction屬性級別最高,它決定WrapCellPointer和TabAcrossSplits這兩個屬性是否能生效。TabAction有三個設置值:ControlNavigation、ColumnNavigation和GridNavigation。當該屬性設置為ControlNavigation時,按tab鍵將根據TabIndex將焦點切換到下一個控件。這一設置優先于WrapCellPointer和TabAcrossSplits。
WrapCellPointer屬性決定在任何單個的拆分中tab鍵和箭頭鍵的行為。如果該屬性設置為True,且當前單元位于最后一列,這時最終用戶按tab鍵則使第一列的下一行變成當前的單元。不過,如果當前單元位于最后一行的最后一列時,這時就沒有地方可以“換行”。
TabAcrossSplits屬性決定當網格中存在兩個或多個拆分時tab和箭頭鍵的行為。如果該屬性設置為True,且當前單元位于任何一個拆分的最后一列,則按tab或箭頭鍵將使當前單元“跳”到下一個拆分的第一列。當前單元仍保持相同的行位置。
注意如果WrapCellPointer和TabAcrossSplits屬性都設置為True,則只有當前單元位于最后一個拆分的最后一列時才會換行。這時當前單元將換到第一個拆分的第一列中的下一行。
自定義列集合
每一個Split對象都有一個Columns屬性,允許用戶來操作一個Column對象的集合。通過這樣做,可以更改每個Split對象的外觀。例如,可以用一個拆分包含顯示姓氏字段和名字字段的兩個列,而第二個拆分則顯示電話字段和地址字段。要實現這一目標,需要將其它的每一列的Visible屬性設置為False,如下所示:
'枚舉Columns集合,對每一個Column對象的DataField屬性
'進行測試。如果測試失敗,則隱藏這一列。
DimiAsInteger
新聞熱點
疑難解答