版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VB表格控件總覽:在VB開(kāi)發(fā)環(huán)境中,表格控件在界面開(kāi)發(fā)元素中占有重要的地位。它不僅有外觀整潔、表達(dá)形式規(guī)范的優(yōu)點(diǎn),而且更重要的是它較高的信息表現(xiàn)率(就是相對(duì)于其他控件來(lái)說(shuō)能夠表達(dá)更多的信息),隨著信息時(shí)代的到來(lái),它的應(yīng)用將更加的廣泛。那么在VB平臺(tái)下,如何操作這一功能強(qiáng)大的控件元素呢?事實(shí)上我們知道,VB平臺(tái)下面的表格控件是相當(dāng)豐富的,總結(jié)下來(lái)提供了4種類(lèi)型:MicrosoftDataBoundgridControl、MicrosoftDatagridControl、MicrosoftFlexgridControl、MicrosoftHierarchialFlexgridControl.這四種
2、表格各有其特點(diǎn),下面我們一一討論。MicrosoftDataBoundgridControl此控件主要用于數(shù)據(jù)綁定(可以不綁定,但是因?yàn)椴惶峁?duì)單個(gè)cell的控制支持,所以實(shí)際上這樣做是不經(jīng)濟(jì)的)。具體說(shuō)來(lái),就是數(shù)據(jù)源比較固定的情況下可以使用這種控件。具體使用方法是設(shè)定此控件的datasource屬性,就可以不用編寫(xiě)任何代碼就可以顯示該數(shù)據(jù)源所指向的記錄數(shù)據(jù)。比如可以將datasource設(shè)置為一個(gè)data控件,而data控件又指向數(shù)據(jù)庫(kù)成績(jī)的一個(gè)語(yǔ)文表,那么當(dāng)程序運(yùn)行時(shí),它就自動(dòng)顯示此語(yǔ)文表的數(shù)據(jù)。從上面的分析看得出來(lái),這個(gè)控件雖然操作方便,但是它也有局限性,就是不能對(duì)顯示的數(shù)據(jù)進(jìn)行靈活的控
3、制操作,比如有些數(shù)據(jù)允許用戶(hù)修改,有些數(shù)據(jù)卻不允許用戶(hù)修改,而此控件卻只能提供全部數(shù)據(jù)源的原子操作:即要么全部允許修改,要么就全部不允許。還有另外此控件也不提供對(duì)單個(gè)單元格(cell)進(jìn)行操作,所以提供不了更為個(gè)性化的界面風(fēng)格。MicrosoftDatagridControl此控件跟前面介紹的DataBoundgridControl控件很相似,也是主要進(jìn)行綁定操作,而缺點(diǎn)和DataBoundgridControl完全一樣。但是它跟DataBoundgridControl不一樣的是其數(shù)據(jù)源的驅(qū)動(dòng)引擎只能是OLEDB形式的,不能是DAO,比如就可以使用ADO數(shù)據(jù)控件,不能使用DATA控件。而Dat
4、aBoundgridControl卻剛好和它相反,這一點(diǎn)在開(kāi)發(fā)中一定要注意。MicrosoftFlexgridControl與MicrosoftHierarchialFlexgridControl.這里重點(diǎn)介紹這兩種控件,因?yàn)樵趯?shí)際開(kāi)發(fā)中,這兩種控件應(yīng)用的場(chǎng)合更多一些,它不僅能夠反映數(shù)據(jù),而且也能把數(shù)據(jù)的修改信息反映到數(shù)據(jù)庫(kù)中去,所以彌補(bǔ)了上述兩種控件的不足。如果數(shù)據(jù)不需要修改,那么可以進(jìn)行綁定操作,其方法跟前面介紹的完全一樣,就是通過(guò)設(shè)置DataSource屬性來(lái)完成數(shù)據(jù)的顯示工作。但是實(shí)際開(kāi)發(fā)中,需要對(duì)整個(gè)表格控件更為靈活的顯示控制。在給出例程之前,有必要對(duì)這一控件進(jìn)行比較詳盡的認(rèn)識(shí):這種
5、控件允許將文本或者圖象放置于每個(gè)單元格之中,控件的Row與Col屬性允許用戶(hù)在代碼中指定當(dāng)前行和列,當(dāng)然也可通過(guò)操作鼠標(biāo)和鍵盤(pán)來(lái)改變這兩個(gè)屬性,而text屬性指明當(dāng)前單元格的文本。如果單元格的文本太長(zhǎng)而不能完全顯示出來(lái)的話(huà),可以通過(guò)將WordWrap屬性設(shè)置為true來(lái)達(dá)到顯示的目的。下面將比較重要的屬性小結(jié)如下:DataSource用來(lái)指定需要綁定的數(shù)據(jù)源,比如data控件。Cellpicture用來(lái)設(shè)定當(dāng)前單元格的圖象,便于顯示該圖象。此屬性不能在設(shè)計(jì)時(shí)使用。Col,Row設(shè)定當(dāng)前列和當(dāng)前行,注意它們均是從0開(kāi)始的,如果同時(shí)設(shè)定它們,可以指定當(dāng)前的單元格。設(shè)計(jì)時(shí)也不能使用。Cols,Row
6、s設(shè)置表格控件總的列數(shù)和行數(shù)。Hwnd-表格句柄,可以結(jié)合WindowsAPI對(duì)表格控件進(jìn)行更高級(jí)的控制。Text指定當(dāng)前的單元格的文本內(nèi)容。Text指定當(dāng)前的單元格的文本內(nèi)容。TextMatrix(ij)一-此屬性比較重要,它用來(lái)指定第I行和第j列所確定的單元格的文本內(nèi)容。它等價(jià)于下面的代碼:MSHFlexGrid1.Rows=iMSHFlexGrid1.Cols=jMSHFlexGrid1.Text=指定的字符串Wordwrap為ture時(shí)可以在當(dāng)前單元格換行顯示,否則如果要顯示的字符的長(zhǎng)度超過(guò)列寬,那么就不能顯示完全。二例程分析:以上只是介紹了表格控件經(jīng)常使用的屬性,還有很多其他重要的屬
7、性這里限于篇幅就不一樣講解了,如果讀者有興趣的話(huà)可以參考MSDN上相關(guān)的內(nèi)容的介紹,下面我這里提供一個(gè)例程來(lái)鞏固前面的知識(shí)內(nèi)容。例程是使用Flexgrid控件(由于DataBoundgrid和Datagrid比較簡(jiǎn)單,所以這里就不再介紹了),如果大家手頭上用的是MSHFlexgrid控件的話(huà),只需要把名稱(chēng)換為MSFlexGridl即可。該例程主要實(shí)現(xiàn)后臺(tái)數(shù)據(jù)庫(kù)的顯示工作,其界面如下:主要代碼如下:Dimlastrow%最后一次鼠標(biāo)點(diǎn)擊的行Dimlastcol%最后一次鼠標(biāo)點(diǎn)擊的列PrivateSubCommand1_Click()MsgBoxData1.Database.Recordsets.
8、CountEndSubPrivateSubForm_Load()初始化數(shù)據(jù)click=Falselastrow=1lastcol=1初始化data控件,進(jìn)行綁定顯示的初始化Data1.DatabaseName=App.Path&db1.mdbData1.RecordSource=成績(jī)表進(jìn)行非綁定顯示Data1.RefreshData1.Recordset.MoveFirstMSFlexGrid2.Rows=Data1.Database.Recordsets.Count+1設(shè)置總行數(shù)MSFlexGrid2.Cols=Data1.Recordset.Fields.Count+1設(shè)置總列數(shù)MSFle
9、xGrid2.GridColor=vbBlue網(wǎng)格顏色MSFlexGrid2.ForeColor=vbRed字體顏色MSFlexGrid2.GridLines=1設(shè)置網(wǎng)格線(xiàn)的屬性MSFlexGrid2.GridLineWidth=2設(shè)置網(wǎng)格線(xiàn)的粗細(xì)程序,默認(rèn)為1MSFlexGrid2.ToolTipText=非綁定顯示設(shè)置工具提示文本MSFlexGrid2.BackColorSel=vbGreen單元格被選中的顏色Dimi%Dimj%設(shè)置列頭文本Fori=1ToMSFlexGrid2.Cols-1MSFlexGrid2.TextMatrix(0,i)=Data1.Recordset.Field
10、s(i-1).NameNexti設(shè)置數(shù)據(jù)Fori=1ToMSFlexGrid2.Rows-1控制行Forj=1ToMSFlexGrid2.Cols-1控制列MSFlexGrid2.TextMatrix(i,j)=Data1.Recordset.Fields(j-1).ValueNextjData1.Recordset.MoveNextNexti設(shè)置當(dāng)前單元格的圖象信息MSFlexGrid2.Col=0MSFlexGrid2.Row=2SetMSFlexGrid2.CellPicture=LoadPicture(App.Path&cell.bmp)EndSub實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊一個(gè)單元格的背景顏色的改
11、變功能PrivateSubMSFlexGrid2_Click()MSFlexGrid2.Row=lastrowMSFlexGrid2.Col=lastcolMSFlexGrid2.CellBackColor=vbWhiteMSFlexGrid2.Row=MSFlexGrid2.MouseRowMSFlexGrid2.Col=MSFlexGrid2.MouseColMSFlexGrid2.CellBackColor=vbCyanlastrow=MSFlexGrid2.Rowlastcol=MSFlexGrid2.ColEndSub要在不綁定數(shù)據(jù)的情況下實(shí)現(xiàn)編輯修改的功能,如果對(duì)控件不進(jìn)行改進(jìn)是無(wú)
12、法達(dá)到目的的。這里實(shí)現(xiàn)的思路是首先判斷光標(biāo)(或者說(shuō)焦點(diǎn))在哪個(gè)單元格上,然后在在單元格的范圍內(nèi)動(dòng)態(tài)創(chuàng)建一個(gè)文本框(不過(guò)在vb平臺(tái)下,可以考慮先在設(shè)計(jì)時(shí)放置一個(gè)不可見(jiàn)的文本框,然后通過(guò)move方法將其放置到當(dāng)前單元格并且顯示它即可達(dá)到相同的目的),其大小正好可以把此單元格給覆蓋掉,然后就可以把原來(lái)的文本信息附給該文本框,這樣就可以直接在文本框內(nèi)進(jìn)行編輯修改操作,從而實(shí)現(xiàn)了單元格的編輯修改功能,依據(jù)這個(gè)思想來(lái)可以在單元格里面創(chuàng)建下拉列表框,復(fù)選框等控件。其實(shí)現(xiàn)的核心代碼如下:實(shí)現(xiàn)編輯功能PrivateSubMSFlexGrid3_DblClick()Text1.Visible=False如果初次雙
13、擊,那么就執(zhí)行如下代碼Iffirstclick=TrueThenlastclickrow=MSFlexGrid3.Rowlastclickcol=MSFlexGrid3.ColText1.Text=MSFlexGrid3.TextMatrix(lastclickrow,lastclickcol)EndIf,將文本框放置到當(dāng)前單元格處DimLeftOfText%文本框的left屬性DimTopOfText%文本框的top屬性Dimselrow%當(dāng)前行Dimselcol%當(dāng)前列selrow=MSFlexGrid3.Rowselcol=MSFlexGrid3.ColLeftOfText=Frame3
14、.Left+MSFlexGrid3.Left+MSFlexGrid3.ColPos(selcol)+45TopOfText=Frame3.Top+MSFlexGrid3.Top+MSFlexGrid3.RowPos(selrow)+45Text1.MoveLeftOfText,TopOfText,930,200Text1.Visible=True如果不是初次雙擊,那么就執(zhí)行如下代碼Iffirstclick=FalseThenMSFlexGrid3.TextMatrix(lastclickrow,lastclickcol)=Text1.Textlastclickrow=MSFlexGrid3.Rowlastclickcol=MSFlexGrid3.ColEndIfText1.Text=MSFlexGrid3.TextMatr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職(建筑防水工程技術(shù))防水卷材施工階段測(cè)試試題及答案
- 2025年大學(xué)心理健康(人際交往)試題及答案
- 2025年中職圖書(shū)館學(xué)(圖書(shū)館學(xué)基礎(chǔ))試題及答案
- 2025年中職中西面點(diǎn)(酥點(diǎn)制作工藝)試題及答案
- 2025年高職物業(yè)管理(物業(yè)綠化養(yǎng)護(hù))試題及答案
- 2025年高職電子信息材料應(yīng)用技術(shù)(材料性能檢測(cè))試題及答案
- 2025年大學(xué)大四(農(nóng)林經(jīng)濟(jì)管理)農(nóng)林經(jīng)濟(jì)管理綜合實(shí)訓(xùn)階段測(cè)試題及答案
- 2025年中職農(nóng)業(yè)機(jī)械使用與維護(hù)(農(nóng)機(jī)操作規(guī)范)試題及答案
- 2025年高職寵物醫(yī)療技術(shù)(犬貓外科護(hù)理)試題及答案
- 2025年高職化學(xué)(有機(jī)化學(xué))試題及答案
- 電動(dòng)兩輪車(chē)整車(chē)性能測(cè)試與優(yōu)化方案
- 《藝術(shù)插花的造型與數(shù)學(xué)》教學(xué)大綱
- SF-36健康調(diào)查量表(含excel版)
- 超星爾雅學(xué)習(xí)通《高校實(shí)驗(yàn)室安全基礎(chǔ)課(實(shí)驗(yàn)室準(zhǔn)入教育)》章節(jié)測(cè)試含答案
- 酒店餐飲宴會(huì)服務(wù)流程規(guī)定
- 2024-2025學(xué)年山東省濰坊市高一下學(xué)期5月期中考試政治試題(解析版)
- 環(huán)境污染治理設(shè)施運(yùn)營(yíng)考試試題
- 2025年證監(jiān)會(huì)招聘面試高頻考題及解析
- 2025-2030中國(guó)溶劑染料行業(yè)消費(fèi)狀況及競(jìng)爭(zhēng)策略分析報(bào)告
- 急診科腦出血課件
- 安全生產(chǎn)管理機(jī)構(gòu)人員配備表
評(píng)論
0/150
提交評(píng)論