




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、VB 表格控件總覽與例程說明一表格控件總覽:在 VB 開發(fā)環(huán)境中,表格控件在界面開發(fā)元素中占有重要的地 位。它不僅有外觀整潔、表達(dá)形式規(guī)范的優(yōu)點,而且更重要的是它較 高的信息表現(xiàn)率(就是相對于其他控件來說能夠表達(dá)更多的信息), 隨著信息時代的到來,它的應(yīng)用將更加的廣泛。那么在VB平臺下,如何操作這一功能強大的控件元素呢?事實 上我們知道,VB平臺下面的表格控件是相當(dāng)豐富的,總結(jié)下來提供 了 4 種類型: Microsoft Data Bound grid Control、MicrosoftDatagrid Control 、Microsoft Flexgrid Control、Microsof
2、tHierarchial Flexgrid Control.這四種表格各有其特點,下面我們一一討論。1 Microsoft Data Bound grid Control 此控件主要用于數(shù)據(jù)綁定(可以不綁定,但是因為不提供對單 個 cell 的控制支持,所以實際上這樣做是不經(jīng)濟(jì)的)。具體說來, 就是數(shù)據(jù)源比較固定的情況下可以使用這種控件。具體使用方法是設(shè)定此控件的 datasource 屬性,就可以不用編 寫任何代碼就可以顯示該數(shù)據(jù)源所指向的記錄數(shù)據(jù)。比如可以將 datasource 設(shè)置為一個 data 控件,而 data 控件又指向數(shù)據(jù)庫 " 成績 "的 一個"
3、;語文"表,那么當(dāng)程序運行時, 它就自動顯示此 "語文"表的 數(shù)據(jù)。從上面的分析看得出來,這個控件雖然操作方便,但是它也有 局限性, 就是不能對顯示的數(shù)據(jù)進(jìn)行靈活的控制操作, 比如有些數(shù)據(jù) 允許用戶修改, 有些數(shù)據(jù)卻不允許用戶修改, 而此控件卻只能提供全 部數(shù)據(jù)源的原子操作: 即要么全部允許修改,要么就全部不允許。還 有另外此控件也不提供對單個單元格 (cell )進(jìn)行操作, 所以提供不 了更為個性化的界面風(fēng)格。2 Microsoft Datagrid Control此控件跟前面介紹的 Data Bound grid Control 控件很相似, 也是主要進(jìn)行綁定
4、操作,而缺點和 Data Bound grid Control 完全一 樣。但是它跟 Data Bound grid Control 不一樣的是其數(shù)據(jù)源的驅(qū)動 引擎只能是OLED曲式的,不能是DAO比如就可以使用ADO數(shù)據(jù)控 件,不能使用DATA控件。而Data Bound grid Control 卻剛好和它 相反,這一點在開發(fā)中一定要注意。3 Microsoft Flexgrid Control與 Microsoft HierarchialFlexgrid Control.這里重點介紹這兩種控件,因為在實際開發(fā)中,這兩種控件應(yīng) 用的場合更多一些, 它不僅能夠反映數(shù)據(jù), 而且也能把數(shù)據(jù)的修改
5、信 息反映到數(shù)據(jù)庫中去,所以彌補了上述兩種控件的不足。如果數(shù)據(jù)不需要修改,那么可以進(jìn)行綁定操作,其方法跟前面 介紹的完全一樣,就是通過設(shè)置 DataSource 屬性來完成數(shù)據(jù)的顯示 工作。但是實際開發(fā)中,需要對整個表格控件更為靈活的顯示控制。在給出例程之前,有必要對這一控件進(jìn)行比較詳盡的認(rèn)識:這種控件允許將文本或者圖象放置于每個單元格之中,控件的Row與Col 屬性允許用戶在代碼中指定當(dāng)前行和列,當(dāng)然也可通過操作鼠標(biāo) 和鍵盤來改變這兩個屬性,而 text 屬性指明當(dāng)前單元格的文本。如 果單元格的文本太長而不能完全顯示出來的話, 可以通過將 WordWrap 屬性設(shè)置為 true 來達(dá)到顯示的
6、目的。下面將比較重要的屬性小結(jié)如 下:DataSource 用來指定需要綁定的數(shù)據(jù)源,比如 data控件。Cellpicture用來設(shè)定當(dāng)前單元格的圖象, 便于顯示該圖象。此屬性不能在設(shè)計時使用。Col , Row 設(shè)定當(dāng)前列和當(dāng)前行, 注意它們均是從 0 開始的,如果同時設(shè)定它們,可以指定當(dāng)前的單元格。設(shè)計時也 不能使用。Cols , Rows 設(shè)置表格控件總的列數(shù)和行數(shù)。Hwnd 表格句柄,可以結(jié)合 WindowsAPI 對表格控件進(jìn)行更高級的控制。Text 指定當(dāng)前的單元格的文本內(nèi)容。TextMatrix(i,j) 此屬性比較重要,它用來指定第 I 行和第 j 列所確定的單元格的文本內(nèi)容
7、。它等價于下面的代碼:MSHFlexGrid1.Rows =iMSHFlexGrid1.Cols =jMSHFlexGrid1.Text = 指定的字符串WordWrap 為 ture 時可以在當(dāng)前單元格換行顯示,否則如果要顯示的字符的長度超過列寬,那么就不能顯示完全。 二例程分析:以上只是介紹了表格控件經(jīng)常使用的屬性,還有很多其他重要 的屬性這里限于篇幅就不一樣講解了, 如果讀者有興趣的話可以參考 MSDNt相關(guān)的內(nèi)容的介紹,下面我這里提供一個例程來鞏固前面的 知識內(nèi)容。例程是使用 Flexgrid 控件(由于 Data Bound grid 和 Datagrid 比 較簡單,所以這里就不再
8、介紹了),如果大家手頭上用的是 MSHFlexgrid 控件的話,只需要把名稱換為 MSFlexGrid1 即可。該例 程主要實現(xiàn)后臺數(shù)據(jù)庫的顯示工作,其界面如下:主要代碼如下:Dim lastrow% ' 最后一次鼠標(biāo)點擊的行Dim lastcol% ' 最后一次鼠標(biāo)點擊的列Private Sub Command1_Click()MsgBox Data1.Database.Recordsets.CountEnd SubPrivate Sub Form_Load()' 初始化數(shù)據(jù)click = False lastrow = 1 lastcol = 1 ' 初始
9、化 data 控件,進(jìn)行綁定顯示的初始化Data1.DatabaseName = App.Path & "db1.mdb" Data1.RecordSource = " 成績表 "' 進(jìn)行非綁定顯示Data1.RefreshData1.Recordset.MoveFirstMSFlexGrid2.Rows = Data1.Database.Recordsets.Count + 1 ' 設(shè)置 總行數(shù)MSFlexGrid2.Cols = Data1.Recordset.Fields.Count + 1 ' 設(shè)置總 列數(shù)MSFl
10、exGrid2.GridColor = vbBlue ' 網(wǎng)格顏色 MSFlexGrid2.ForeColor = vbRed ' 字體顏色 MSFlexGrid2.GridLines = 1 ' 設(shè)置網(wǎng)格線的屬性 MSFlexGrid2.GridLineWidth = 2 ' 設(shè)置網(wǎng)格線的粗細(xì)程序,默認(rèn)為 1MSFlexGrid2.ToolTipText = " 非綁定顯示 " ' 設(shè)置工具提示文本 MSFlexGrid2.BackColorSel = vbGreen ' 單元格被選中的顏 色Dim i%Dim j%設(shè)置列頭
11、文本For i = 1 To MSFlexGrid2.Cols - 1MSFlexGrid2.TextMatrix(0, i) = Data1.Recordset.Fields(i - 1).NameNext i' 設(shè)置數(shù)據(jù)For i = 1 To MSFlexGrid2.Rows - 1 '控制行For j = 1 To MSFlexGrid2.Cols - 1 ' 控制列 MSFlexGrid2.TextMatrix(i, j) = Data1.Recordset.Fields(j - 1).ValueNext jData1.Recordset.MoveNextNe
12、xt i' 設(shè)置當(dāng)前單元格的圖象信息 MSFlexGrid2.Col = 0MSFlexGrid2.Row = 2Set MSFlexGrid2.CellPicture = LoadPicture(App.Path & "cell.bmp")End Sub' 實現(xiàn)鼠標(biāo)點擊一個單元格的背景顏色的改變功能 Private Sub MSFlexGrid2_Click()MSFlexGrid2.Row = lastrowMSFlexGrid2.Col = lastcolMSFlexGrid2.CellBackColor = vbWhite MSFlexGri
13、d2.Row = MSFlexGrid2.MouseRow MSFlexGrid2.Col = MSFlexGrid2.MouseCol MSFlexGrid2.CellBackColor = vbCyan lastrow = MSFlexGrid2.Row lastcol = MSFlexGrid2.ColEnd Sub要在不綁定數(shù)據(jù)的情況下實現(xiàn)編輯修改的功能, 如果對控件不進(jìn) 行改進(jìn)是無法達(dá)到目的的。 這里實現(xiàn)的思路是首先判斷光標(biāo) (或者說 焦點) 在哪個單元格上, 然后在在單元格的范圍內(nèi)動態(tài)創(chuàng)建一個文本 框(不過在 vb 平臺下,可以考慮先在設(shè)計時放置一個不可見的文本 框,然后通過mov
14、e方法將其放置到當(dāng)前單元格并且顯示它即可達(dá)到 相同的目的 ) ,其大小正好可以把此單元格給覆蓋掉,然后就可以把 原來的文本信息附給該文本框, 這樣就可以直接在文本框內(nèi)進(jìn)行編輯 修改操作, 從而實現(xiàn)了單元格的編輯修改功能, 依據(jù)這個思想來可以 在單元格里面創(chuàng)建下拉列表框, 復(fù)選框等控件。 其實現(xiàn)的核心代碼如 下:' 實現(xiàn)編輯功能Private Sub MSFlexGrid3_DblClick()Text1.Visible = False如果初次雙擊,那么就執(zhí)行如下代碼If firstclick = True Then lastclickrow = MSFlexGrid3.Rowlastc
15、lickcol = MSFlexGrid3.ColText1.Text = MSFlexGrid3.TextMatrix(lastclickrow,lastclickcol)End If' 將文本框放置到當(dāng)前單元格處Dim LeftOfText% ' 文本框的 left 屬性Dim TopOfText% ' 文本框的 top 屬性Dim selrow% ' 當(dāng)前行Dim selcol% ' 當(dāng)前列selrow = MSFlexGrid3.Rowselcol = MSFlexGrid3.ColLeftOfText = Frame3.Left + MSFlexGrid3.Left +MSFlexGrid3.ColPos(selcol) + 45TopOfText = Frame3.Top + MSFlexGrid3.Top +MSFlexGrid3.RowPos(selrow) + 45Text1.Move LeftOfText, TopOfText, 930, 200Text1.Visible = True' 如果不是初次雙擊,那么就執(zhí)行如下代碼If firstclick = False ThenMSFlexGrid3.TextMatrix(l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 草房子讀后感成長中的困惑與希望
- 節(jié)約用水產(chǎn)品推廣合作協(xié)議
- 數(shù)據(jù)驅(qū)動的智能營銷策略推廣合同
- 紅色經(jīng)典故事紅巖讀后感
- 社交電商大數(shù)據(jù)驅(qū)動平臺
- 專利使用費支付協(xié)議
- 桃花源記情景劇教案
- 農(nóng)業(yè)生產(chǎn)資源節(jié)約與環(huán)境保護(hù)行動計劃
- 產(chǎn)品設(shè)計思路表格
- 高考語文的文言文翻譯誤區(qū)分析
- 2025年廣西職業(yè)院校技能大賽高職組(商務(wù)數(shù)據(jù)分析賽項)參考試題庫資料及答案
- 2025年黑龍江農(nóng)墾職業(yè)學(xué)院單招職業(yè)傾向性測試題庫帶答案
- 四年級下冊 道德與法治 全冊教案
- 個人租房房屋合同范本
- MSA測量系統(tǒng)培訓(xùn)
- 冷庫安全培訓(xùn)
- 線上教育平臺教師教學(xué)行為規(guī)范與責(zé)任書
- 2025年內(nèi)蒙古法院系統(tǒng)招聘用制書記員2988人過渡高頻重點模擬試卷提升(共500題附帶答案詳解)
- 中央2025年全國婦聯(lián)所屬在京事業(yè)單位招聘93人筆試歷年參考題庫附帶答案詳解
- 《環(huán)境污染對生態(tài)系統(tǒng)的影響》課件
- 2024年保安員證資格考試題庫及答案
評論
0/150
提交評論