版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、VB 表格控件總覽與例程說明一表格控件總覽:在 VB 開發(fā)環(huán)境中,表格控件在界面開發(fā)元素中占有重要的地 位。它不僅有外觀整潔、表達形式規(guī)范的優(yōu)點,而且更重要的是它較 高的信息表現(xiàn)率(就是相對于其他控件來說能夠表達更多的信息), 隨著信息時代的到來,它的應(yīng)用將更加的廣泛。那么在VB平臺下,如何操作這一功能強大的控件元素呢?事實 上我們知道,VB平臺下面的表格控件是相當豐富的,總結(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)濟的)。具體說來, 就是數(shù)據(jù)源比較固定的情況下可以使用這種控件。具體使用方法是設(shè)定此控件的 datasource 屬性,就可以不用編 寫任何代碼就可以顯示該數(shù)據(jù)源所指向的記錄數(shù)據(jù)。比如可以將 datasource 設(shè)置為一個 data 控件,而 data 控件又指向數(shù)據(jù)庫 " 成績 "的 一個"
3、;語文"表,那么當程序運行時, 它就自動顯示此 "語文"表的 數(shù)據(jù)。從上面的分析看得出來,這個控件雖然操作方便,但是它也有 局限性, 就是不能對顯示的數(shù)據(jù)進行靈活的控制操作, 比如有些數(shù)據(jù) 允許用戶修改, 有些數(shù)據(jù)卻不允許用戶修改, 而此控件卻只能提供全 部數(shù)據(jù)源的原子操作: 即要么全部允許修改,要么就全部不允許。還 有另外此控件也不提供對單個單元格 (cell )進行操作, 所以提供不 了更為個性化的界面風(fēng)格。2 Microsoft Datagrid Control此控件跟前面介紹的 Data Bound grid Control 控件很相似, 也是主要進行綁定
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ù)不需要修改,那么可以進行綁定操作,其方法跟前面 介紹的完全一樣,就是通過設(shè)置 DataSource 屬性來完成數(shù)據(jù)的顯示 工作。但是實際開發(fā)中,需要對整個表格控件更為靈活的顯示控制。在給出例程之前,有必要對這一控件進行比較詳盡的認識:這種控件允許將文本或者圖象放置于每個單元格之中,控件的Row與Col 屬性允許用戶在代碼中指定當前行和列,當然也可通過操作鼠標 和鍵盤來改變這兩個屬性,而 text 屬性指明當前單元格的文本。如 果單元格的文本太長而不能完全顯示出來的話, 可以通過將 WordWrap 屬性設(shè)置為 true 來達到顯示的
6、目的。下面將比較重要的屬性小結(jié)如 下:DataSource 用來指定需要綁定的數(shù)據(jù)源,比如 data控件。Cellpicture用來設(shè)定當前單元格的圖象, 便于顯示該圖象。此屬性不能在設(shè)計時使用。Col , Row 設(shè)定當前列和當前行, 注意它們均是從 0 開始的,如果同時設(shè)定它們,可以指定當前的單元格。設(shè)計時也 不能使用。Cols , Rows 設(shè)置表格控件總的列數(shù)和行數(shù)。Hwnd 表格句柄,可以結(jié)合 WindowsAPI 對表格控件進行更高級的控制。Text 指定當前的單元格的文本內(nèi)容。TextMatrix(i,j) 此屬性比較重要,它用來指定第 I 行和第 j 列所確定的單元格的文本內(nèi)容
7、。它等價于下面的代碼:MSHFlexGrid1.Rows =iMSHFlexGrid1.Cols =jMSHFlexGrid1.Text = 指定的字符串WordWrap 為 ture 時可以在當前單元格換行顯示,否則如果要顯示的字符的長度超過列寬,那么就不能顯示完全。 二例程分析:以上只是介紹了表格控件經(jīng)常使用的屬性,還有很多其他重要 的屬性這里限于篇幅就不一樣講解了, 如果讀者有興趣的話可以參考 MSDNt相關(guān)的內(nèi)容的介紹,下面我這里提供一個例程來鞏固前面的 知識內(nèi)容。例程是使用 Flexgrid 控件(由于 Data Bound grid 和 Datagrid 比 較簡單,所以這里就不再
8、介紹了),如果大家手頭上用的是 MSHFlexgrid 控件的話,只需要把名稱換為 MSFlexGrid1 即可。該例 程主要實現(xiàn)后臺數(shù)據(jù)庫的顯示工作,其界面如下:主要代碼如下:Dim lastrow% ' 最后一次鼠標點擊的行Dim lastcol% ' 最后一次鼠標點擊的列Private Sub Command1_Click()MsgBox Data1.Database.Recordsets.CountEnd SubPrivate Sub Form_Load()' 初始化數(shù)據(jù)click = False lastrow = 1 lastcol = 1 ' 初始
9、化 data 控件,進行綁定顯示的初始化Data1.DatabaseName = App.Path & "db1.mdb" Data1.RecordSource = " 成績表 "' 進行非綁定顯示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)格線的粗細程序,默認為 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è)置當前單元格的圖象信息 MSFlexGrid2.Col = 0MSFlexGrid2.Row = 2Set MSFlexGrid2.CellPicture = LoadPicture(App.Path & "cell.bmp")End Sub' 實現(xiàn)鼠標點擊一個單元格的背景顏色的改變功能 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)編輯修改的功能, 如果對控件不進 行改進是無法達到目的的。 這里實現(xiàn)的思路是首先判斷光標 (或者說 焦點) 在哪個單元格上, 然后在在單元格的范圍內(nèi)動態(tài)創(chuàng)建一個文本 框(不過在 vb 平臺下,可以考慮先在設(shè)計時放置一個不可見的文本 框,然后通過mov
14、e方法將其放置到當前單元格并且顯示它即可達到 相同的目的 ) ,其大小正好可以把此單元格給覆蓋掉,然后就可以把 原來的文本信息附給該文本框, 這樣就可以直接在文本框內(nèi)進行編輯 修改操作, 從而實現(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' 將文本框放置到當前單元格處Dim LeftOfText% ' 文本框的 left 屬性Dim TopOfText% ' 文本框的 top 屬性Dim selrow% ' 當前行Dim selcol% ' 當前列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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度二零二五餐飲服務(wù)人員勞動合同范本
- 2025年度酒店加盟連鎖品牌特許經(jīng)營合同
- 2025年度林業(yè)生態(tài)旅游區(qū)樹木砍伐與生態(tài)保護合同
- 二零二五年度礦山工程安全生產(chǎn)責(zé)任及風(fēng)險評估合同
- 二零二五年度裝修公司員工安全生產(chǎn)合同
- 二零二五年度裝飾公司施工安全責(zé)任合同
- 2025年度版?zhèn)€人雇傭合同協(xié)議書:信息技術(shù)領(lǐng)域?qū)I(yè)人才雇傭協(xié)議
- 二零二五年度美容院員工勞動合同編制與范本參考
- 2025年度美容院美容院養(yǎng)生項目入股合同
- 科技助力小學(xué)教師職業(yè)進階
- 極簡統(tǒng)計學(xué)(中文版)
- 2024年資格考試-對外漢語教師資格證筆試參考題庫含答案
- 2024年4月自考02382管理信息系統(tǒng)答案及評分參考
- (蘇版)初三化學(xué)上冊:第2單元課題1空氣
- 2023年12月廣東珠海市軌道交通局公開招聘工作人員1人筆試近6年高頻考題難、易錯點薈萃答案帶詳解附后
- 腹腔鏡腎上腺腫瘤切除術(shù)查房護理課件
- 燃氣罩式爐應(yīng)急預(yù)案
- 專題23平拋運動臨界問題相遇問題類平拋運和斜拋運動
- 超聲科醫(yī)德醫(yī)風(fēng)制度內(nèi)容
- 高三開學(xué)收心班會課件
- 蒸汽換算計算表
評論
0/150
提交評論