都是資料繫結控制項,但是也有一定的區別,適合不同的應用場合:
MSFlexGrid 控制項:
Microsoft FlexGrid (MSFlexGrid) 控制項可以顯示網格資料,也可以對其進行操作。它提供了高度靈活的網格排序、合并和格式設定功能,網格中可以包含字串和圖片。如果將它綁定到一個 Data 控制項上,那麼 MSFlexGrid 顯示的將是唯讀資料。
文法:MSFlexGrid
說明:
文本和圖片可以同時或者單獨放在 MSFlexGrid 的任何一個儲存格中。Row 和 Col 屬性指定了當前的 MSFlexGrid 儲存格。程式員可以在代碼中改變目前的儲存格,使用者可以在運行時使用滑鼠或者方向鍵改變它。Text 屬性提供了目前的儲存格內容的參考資訊。
如果儲存格中的文本過長,無法全部顯示在儲存格的一行中,而且 WordWrap 屬性被設定為 True,那麼文本將迴繞到同一儲存格的下一行。如果需要顯示被迴繞的文本,需要增加單元的列寬(ColWidth 屬性)或行高(RowHeight 屬性)。使用 Col 和 Row 屬性可以分別確定 MSFlexGrid 中列與行的個數。
MSHFlexGrid 控制項:
Microsoft Hierarchical FlexGrid (MSHFlexGrid) 控制項對錶格資料進行顯示和操作。在對包含字串和圖片的表格進行分類、合并以及格式化時,具有完全的靈活性。當綁定到 Data 控制項上時,MSHFlexGrid 所顯示的是唯讀資料。
文法:MSHFlexGrid
說明:
可以將文本、圖片,或者文本和圖片,放在MSHFlexGrid 的任意單元中。Row 和 Col 屬性指定了MSHFlexGrid 中的當前單元。程式員可以在代碼中指定當前單元,也可以在運行時,使用滑鼠或者方向鍵來對其進行修改。Text 屬性引用當前單元的內容。
如果單元的文本過長而不能在該單元中顯示,而且 WordWrap 屬性被設定為 True,那麼文本就會換行到同一單元內的下一行。為了顯示換行的文本,可能需要增加單元的列寬度(ColWidth 屬性)或者行高度(RowHeight 屬性)。可以用 Cols 和 Rows 屬性來決定MSHFlexGrid 控制項中的列數和行數。
顯示階層記錄集:MSHFlexGrid 控制項的一個主要特性是它能顯示階層記錄集—以階層方式顯示的關係表。建立階層記錄集的最容易的方法是使用資料環境設計器並把 MSHFlexGrid 控制項的 DataSource 屬性賦給資料環境。您也可以用 Shape 命令作為 ADO Data Control 的 RecordSource 在代碼中建立階層記錄,如下面的樣本:
' 建立 ConnectionString.
Dim strCn As String
strCn = "Provider=MSDataShape.1;Data Source=Nwind;" & _
"Connect Timeout=15;Data Provider=MSDASQL"
' 建立 Shape 命令.
Dim strSh As String
strSh = "SHAPE {SELECT * FROM `Customers`} AS Customers " & _
"APPEND ({SELECT * FROM `Orders`} AS Orders RELATE " & _
"CustomerID TO CustomerID) AS Orders"
' 把 ConnectionString 賦給 ADO Data Control 的
' ConnectionString 屬性, Shape 命令以及
' 控制項的 RecordSource 屬性.
With Adodc1
.ConnectionString = strCn
.RecordSource = strSh
End With
' 把 HflexGrid 控制項的 DataSource 屬性設定到
' ADO Data 控制項。
Set HFlexGrid1.DataSource = Adodc1
DataGrid控制項:
顯示並允許對Recordset對象中代表記錄和欄位的一系列行和列進行資料操縱。
文法:DataGrid
說明:
該資料識別的DataGrid控制項看起來與Grid控制項類似。但是,您可以設定DataGrid控制項的DataSource屬性為一個Data控制項,以自動填滿該控制項並且從Data控制項的Recordset對象自動化佈建其列標題。這個DataGrid控制項實際上是一個固定的列集合,每一列的行數都是不確定的。
DataGrid 控制項的每一個儲存格都可以包含文本值,但不能連結或內嵌對象。可以在代碼中指定目前的儲存格,或者使用者可以使用滑鼠或方向鍵在運行時改變它。通過在儲存格中鍵入或編程的方式,儲存格可以互動地編輯。儲存格能夠被單獨地選定或按照行來選定。
如果一個儲存格的文本太長,以致於不能在儲存格中全部顯示,則文本將在同一儲存格內折行到下一行。要顯示折行的文本,必須增加儲存格的Column對象的Width屬性和/或DataGrid控制項的RowHeight屬性。在設計時,可以通過調節列來互動地改變列寬度,或在Column對象的屬性頁面中改變列寬度。
使用DataGrid控制項的Columns集合的Count屬性和Recordset對象的RecordCount屬性,可以決定控制項中行和列的數目。DataGrid控制項的可包含的行數取決於系統的資源,而列數最多可達32,767列。
選擇一個儲存格,則ColIndex屬性被設定,也就是選擇了DataGrid對象的Columns集合中的一個Column對象。Column對象的Text和Value屬性引用目前的儲存格的內容。使用Bookmark屬效能夠訪問當前行的資料,它能夠提供對下一級Recordset對象中記錄的訪問。DataGrid控制項中的每一列都有自己的字型、邊框、自動換行、和另外一些與其他列無關的能夠被設定的屬性。在設計時,您可以設定列寬和行高,並且建立對使用者不可見的列。您還能阻止使用者在運行時改變格式。
注意 如果您在設計時設定了任何一個DataGrid列屬性,就必須設定它的所有屬性以保持當前的設定值。
注意:如果使用Move方法定位DataGrid控制項,就必須使用Refresh方法強迫控制項重畫。除了不能支援解除繫結模式以外,DataGrid控制項的功能與DBGrid控制項類似。
參考網址:http://www.2solo.net/bbs/topic.asp?topic_id=1060