国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

教你在VB中操作DataGrid視圖

2019-11-18 17:54:03
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
一個(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è)拆分。可以使用“拆分”選項(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.Add1  

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

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

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

  DataGrid1.Splits.AddDataGrid1.Splits.Count

  EndIf  

  使拆分同步

  當(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ì)象同步。

  WithDataGrid1

  .Splits(0).ScrollGroup=1

  .Splits(1).ScrollGroup=2

  .Splits(2).ScrollGroup=1

  EndWith  

  通過(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è)置值:ControlNavigation、ColumnNavigation和GridNavigation。當(dāng)該屬性設(shè)置為ControlNavigation時(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è)試失敗,則隱藏這一列。

  DimiAsInteger  

  '隱藏除

  Fori=0ToDataGrid1.Splits(0).Columns.Count-1

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

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

  EndIf

  NextI

->


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 青州市| 芮城县| 临洮县| 扎赉特旗| 敦煌市| 锡林郭勒盟| 淮安市| 青州市| 霞浦县| 习水县| 财经| 伊川县| 天全县| 汤阴县| 鹤壁市| 建宁县| 绥德县| 嘉黎县| 新郑市| 团风县| 祁连县| 青岛市| 肇源县| 岐山县| 三台县| 禹城市| 嘉黎县| 慈溪市| 金沙县| 东光县| 砀山县| 横峰县| 芮城县| 普兰店市| 石林| 汝南县| 宝清县| 壶关县| 周宁县| 高唐县| 克东县|