欧美久久天天综合香蕉伊,h片在线免费观看,九九欧美,欧美1区2区3区,日本在线不卡一区,国产视频久久久,91久久久久久久

2023信創(chuàng)獨(dú)角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來(lái),internet一定要實(shí)現(xiàn)!

教你在VB中操作 DataGrid 視圖

2004-02-13 eNet&Ciweek

  一個(gè)“拆分”的網(wǎng)格使最終用戶對(duì)相同的數(shù)據(jù)可以擁有多個(gè)視圖。例如,假設(shè)有一個(gè)由十個(gè)字段組成的大表。在這種情況下,在控件中察看的記錄集將有十列寬,除非窗體非常寬,否則用戶將無(wú)法同時(shí)看見所有列的內(nèi)容。更進(jìn)一步,假設(shè)用戶只對(duì)第一列和最后一列感興趣(例如,第一列是名字,最后一列是電話號(hào)碼)。為了能同時(shí)看到在兩端的列(不重新安排列的順序),可以對(duì)網(wǎng)格進(jìn)行拆分?! ?

  創(chuàng)建一個(gè) Split 對(duì)象

  在設(shè)計(jì)時(shí),可以創(chuàng)建一個(gè)拆分,具體步驟是:右鍵單擊網(wǎng)格,單擊“編輯”,再單擊右鍵,然后單擊“拆分”。通過(guò)右鍵單擊該控件,并單擊“屬性”來(lái)顯示“屬性頁(yè)”對(duì)話框,可以編輯這個(gè)拆分??梢允褂谩安鸱帧边x項(xiàng)卡來(lái)自定義拆分。要?jiǎng)h除一個(gè)拆分,右鍵單擊該拆分,并單擊“刪除”。

  在運(yùn)行時(shí),最終用戶也可以通過(guò)單擊位于這個(gè)網(wǎng)格控件的左下邊的右邊的選項(xiàng)卡,以手工方式來(lái)拆分該網(wǎng)格(除非不允許這個(gè)操作),如下圖所示:  

  默認(rèn)情況下,DataGrid 控件包含一個(gè) Split 對(duì)象。防止最終用戶添加拆分的代碼為:  

  DataGrid1.Splits(0).AllowSizing = False  

  在程序中添加和刪除拆分

  DataGrid 控件包含一個(gè) Split 對(duì)象的集合。要在程序中添加拆分,可以使用 Add 方法,如下所示:

  DataGrid1.Splits.Add 1   

  注意 Add 方法需要新的拆分索引作為其參數(shù)。要添加一個(gè)拆分,應(yīng)將這個(gè)索引參數(shù)設(shè)置為 Splits 集合的 Count 屬性值?! ?

  使用 Split 集合的 Add 方法,可以在程序中按照所實(shí)際需要添加拆分。由于添加多于兩個(gè)以上的拆分將使網(wǎng)格很難使用,可以使用該集合的 Count 屬性來(lái)限制拆分的數(shù)目。 

  If DataGrid1.Splits.Count < 3 Then ' 添加一個(gè)拆分。

  DataGrid1.Splits.Add DataGrid1.Splits.Count

  End If  

  使拆分同步

  當(dāng)拆分多于一個(gè)時(shí),可能希望控制這些拆分如何滾動(dòng)。例如,在一個(gè)具有三個(gè)拆分的網(wǎng)格中,可以決定只讓第一個(gè)和第三個(gè)拆分同步,而讓中間的拆分獨(dú)立地滾動(dòng)。要同步任何兩個(gè)(或多個(gè))拆分,只需將每個(gè) Split 對(duì)象的 ScrollGroup 屬性設(shè)置為同一個(gè)值。  

  ' 使第一個(gè)和第三個(gè) Split 對(duì)象同步。

  With DataGrid1

  .Splits(0).ScrollGroup = 1

  .Splits(1).ScrollGroup = 2

  .Splits(2).ScrollGroup = 1

  End With  

  通過(guò)設(shè)置 Scrollbars 屬性,使同步的拆分組只顯示一個(gè)滾卷?xiàng)l,從而進(jìn)一步自定義拆分的外觀?!?

  控制 Tab 鍵和箭頭鍵的行為

  使用 WrapCellPointer、TabAcrossSplits、以及 TabAction 屬性,可以決定當(dāng)最終用戶按下 tab 鍵或箭頭鍵時(shí)網(wǎng)格的行為。

    

    在這三個(gè)屬性中,TabAction 屬性級(jí)別最高,它決定 WrapCellPointer 和 TabAcrossSplits 這兩個(gè)屬性是否能生效。TabAction 有三個(gè)設(shè)置值: Control Navigation、Column Navigation 和 Grid Navigation。當(dāng)該屬性設(shè)置為 Control Navigation 時(shí),按 tab 鍵將根據(jù) TabIndex 將焦點(diǎn)切換到下一個(gè)控件。這一設(shè)置優(yōu)先于 WrapCellPointer 和 TabAcrossSplits。

  WrapCellPointer 屬性決定在任何單個(gè)的拆分中 tab 鍵和箭頭鍵的行為。如果該屬性設(shè)置為 True,且當(dāng)前單元位于最后一列,這時(shí)最終用戶按 tab 鍵則使第一列的下一行變成當(dāng)前的單元。不過(guò),如果當(dāng)前單元位于最后一行的最后一列時(shí),這時(shí)就沒(méi)有地方可以“換行”。  

  TabAcrossSplits 屬性決定當(dāng)網(wǎng)格中存在兩個(gè)或多個(gè)拆分時(shí) tab 和箭頭鍵的行為。如果該屬性設(shè)置為 True,且當(dāng)前單元位于任何一個(gè)拆分的最后一列,則按 tab 或箭頭鍵將使當(dāng)前單元“跳” 到下一個(gè)拆分的第一列。當(dāng)前單元仍保持相同的行位置?! ?

  注意 如果 WrapCellPointer 和 TabAcrossSplits 屬性都設(shè)置為 True,則只有當(dāng)前單元位于最后一個(gè)拆分的最后一列時(shí)才會(huì)換行。這時(shí)當(dāng)前單元將換到第一個(gè)拆分的第一列中的下一行?! ?

  自定義列集合

  每一個(gè) Split 對(duì)象都有一個(gè) Columns 屬性,允許用戶來(lái)操作一個(gè) Column 對(duì)象的集合。通過(guò)這樣做,可以更改每個(gè) Split 對(duì)象的外觀。例如,可以用一個(gè)拆分包含顯示姓氏字段和名字字段的兩個(gè)列,而第二個(gè)拆分則顯示電話字段和地址字段。要實(shí)現(xiàn)這一目標(biāo),需要將其它的每一列的 Visible 屬性設(shè)置為 False,如下所示:  

  ' 枚舉 Columns 集合,對(duì)每一個(gè) Column 對(duì)象的 DataField 屬性

  ' 進(jìn)行測(cè)試。如果測(cè)試失敗,則隱藏這一列。

  Dim i As Integer  

  ' 隱藏除 ProductName 列之外的所有列。

  For i = 0 To DataGrid1.Splits(0).Columns.Count - 1

  If DataGrid1.Splits(0).Columns(i).DataField <> "ProductName" Then

  DataGrid1.Splits(0).Columns(i).Visible = False

  End If

  Next i  

  ' 隱藏除 UnitPrice 列之外的所有列。

  For i = 0 To DataGrid1.Splits(0).Columns.Count - 1

  If DataGrid1.Splits(1).Columns(i).DataField <> "UnitPrice" Then

  DataGrid1.Splits(1).Columns(i).Visible = False

  End If

  Next I

相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見,請(qǐng)?jiān)谙路教峤唬x謝!

投稿信箱:tougao@enet16.com