Visual Basic: MSFlexGrid/MSHFlexGrid Controls

Visual Studio 6.0

MSHFlexGrid Control

See Also    Example    Properties    Methods    Events

The Microsoft Hierarchical FlexGrid (MSHFlexGrid) control displays and operates on tabular data. It allows complete flexibility to sort, merge, and format tables containing strings and pictures. When bound to a data control, MSHFlexGrid displays read-only data.




You can place text, a picture, or both in any cell of an MSHFlexGrid. The Row and Col properties specify the current cell in an MSHFlexGrid. You can specify the current cell using code, or the user can change it at run time using the mouse or the arrow keys. The Text property references the contents of the current cell.

If the text in a cell is too long to display in the cell, and the WordWrap property is set to True, the text wraps to the next line within the same cell. To display the wrapped text, you may need to increase the cells column width (ColWidth property) or row height (RowHeight property).

Use the Col and Row properties to determine the number of columns and rows in an MSHFlexGrid. Use the Band properties to determine the band styles in an MSHFlexGrid.

Displaying Hierarchical Recordsets

A major feature of the MSHFlexGrid control is its ability to display hierarchical recordsetsrelational tables displayed in a hierarchical fashion. The easiest way to create a hierarchical recordset is to use the Data Environment designer and assign the DataSource property of the MSHFlexGrid control to the Data Environment. You can also create a hierarchical recordset in code using a Shape command as the RecordSource for an ADO Data Control, as shown in the example below:

' Create a ConnectionString.
Dim strCn As String
strCn = "Provider=MSDataShape.1;Data Source=Nwind;" & _
"Connect Timeout=15;Data Provider=MSDASQL"

' Create a Shape command.
Dim strSh As String
strSh = "SHAPE {SELECT * FROM `Customers`}  AS Customers " & _
"APPEND ({SELECT * FROM `Orders`}  AS Orders RELATE " & _
"CustomerID TO CustomerID) AS Orders"

' Assign the ConnectionString to an ADO Data Control's
' ConnectionString property, and the Shape command to the 
' control's RecordSource property.
With Adodc1
   .ConnectionString = strCn
   .RecordSource = strSh
End With
' Set the HflexGrid control's DataSource property to the 
' ADO Data control.
Set HFlexGrid1.DataSource = Adodc1

For More Information   To find out more about hierarchical recordsets, see Hierarchical Cursors and Data Shaping Summary. A description of Shape commands can also be found in Shape Commands in General.

Note   Before you can use an MSHFlexGrid in your application, you must add the MSHFlxGd.ocx file to your project. To automatically include the file in your project, put it in the Autoload file. When distributing your application, you should install the MSHFlxGd.ocx file in the users Microsoft Windows System directory. For more information about adding an ActiveX control to a project, see "Standard ActiveX Controls" in the Visual Basic Programmers Guide.