DataGrid控制項用法詳解

2021-06-22 01:55:21 字數 1951 閱讀 8498

**:

寫在前面

在網格控制項中顯示查詢的資料結果。

對網格控制項的顯示進行控制(如列寬)。

對網格內容格式進行控制(如將小於1的小數顯示成百分數)

二、準備工作

先建立乙個工程,我的主框架選用對話方塊,然後插入你datagrid控制項,見如圖1

圖1找到microsoft datagrid oledb 6.0 控制項,確定,出現圖所示對話方塊,這個對話方塊中你要根據需要選擇的類,這些類封裝了這個控制項的幾乎所有功能有方法。這裡我只選擇了三個類:cdatagrid,ccolumns,ccolumn,如圖2(我們知道,activex是基於com的,這三個類是對這個控制項的com查詢介面的封裝,使你在使用時幾乎不知道自己在使用com控制項。正因為如此,你要想直接檢視這個控制項的源**,也就不可能了。)

圖2三、功能實現及**

1.在網格控制項中顯示查詢的資料結果。 

資料庫接庫,並取得查詢的資料結果。這裡我使用了乙個ado封裝類(當然你可以使用其它的方法方法資料庫,而不會影響控制項的使用)。

cadodatabase m_dbcn;//資料庫物件

cadorecordset m_rs;//記錄集物件

cdatagrid m_ctrldg;//datagrid控制項物件

...(ps:

cadodatabase

cadorecordset 是乙個老外寫的類,「****** database access using an ado class.

"簡單

cstring strconnection; strconnection.format(_t("provider=microsoft.jet.oledb.4.0;")

_t("data source=note.mdb"));

m_dbcn.open((lpctstr)strconnection); //開啟程式資料庫

m_rs.setdatabase(&m_dbcn); m_rs.open(_t("select * from test;")); //執行查詢

m_ctrldg.setrefdatasource((lpunknow)m_rs.getrecordset());//顯示在datagrid控制項中

如圖3:

圖32.對網格控制項的顯示進行控制(如列寬)。 要實現對列的控制,就要先取得列物件。

ccolumns cols = m_ctrldg.getcolumns();//先取得列集

ccolumn col = cols.getitem(vt); //再取得列集中的列,由variant vt變數指出列的索引號

然後,你就可以對當前列為所欲為,這裡我對它設定列寬 col.setwidth(fwidth);//fwidth指定列寬 如圖4

圖43.對網格內容格式進行控制(如將小於1的小數顯示成百分數)

要設定列的顯示格式,還是要先取得列,再對它設定格式,取得列的方法同上。

col.setnumberformat(_t("0.0%"));//百分數格式 如圖5 

圖54.除此之外,我們還可以對它多行顯示,如圖6

圖65.另外,還可以利用訊息機制,對控制項的headclick訊息處理,使控制項能進行排序。 (具體情況參見源**)

四、結束語

細心的朋友會發現,檢視相關類的方法名(函式名),能故名思意,看出控制項的功能,另外在插入控制項時,一般有也幫助檔案,不過是針vb的,而且vb的呼叫方法與vc差別較大,但只有對比vc和vb方法名的相似之處,你還是可以很快對這款控制項上手,並運用到你的專案中去。  

本文源程式在vc6.0英語版,windows xp除錯通過,並附源程式(工程名 testgrid)。datagrid控制項的功能遠不止這此,希望本文能拋磚引玉,歡迎有興趣的朋友交流 email:[email protected]

DataGrid分頁控制項

imports system.data.sqlclient imports system.data imports system.web.ui public class ucdatagridpaging inherits system.web.ui.usercontrol protected wit...

WPF中DataGrid控制項

設定不可自動拉伸寬度 datagrid.canuserresizecolumns false 第一列不可見 datagrid.headersvisibility datagridheadersvisibility.column 設定不可自動拉伸高度 datagrid.canuserresizerow...

EasyUI中datagrid控制項的Editor

datagrid 中的editor 每個editor 支援如下方法 方法 引數 說明 init container,options 初始化editor 並返還目標物件 destroy target 銷毀 editor getvalue target 從 editor text 中讀取值 setval...