Click to See Complete Forum and Search --> : Freezing a Datagrid Column


yaronb
August 22nd, 2001, 04:23 AM
How can I freeze one or several columns in a data grid while scrolling horizonally ? (As the "Freeze" option for columns in an Access grid)

Thanks,
Yaron.

michi
August 22nd, 2001, 10:23 AM
Hi,
DataGrid doesn't have so flexiable feature as MSFlexGrid on this issue. What I did before is using the Splits property of DataGrid.
First, on the form layout, split the grid to two splits. And then use a proper DataSource.
In codes, connect to DB first, and then call Grid1.Rebind. The last thing is creating a function like following to do some make-up on the grid.
=========
Sub FormatGrid()
'
'Lock some columns as you said
'
Const LockedItems = 4

'
'Hide the right part columns in the left split
'
For i = LockedItems To Grid1.Splits(0).Columns.count - 1
Grid1.Splits(0).Columns(i).Visible = False
Next i

'
'Show the right part columns in the right split
'
For i = LockedItems To Grid1.Splits(1).Columns.count - 1
Grid1.Splits(1).Columns(i).Visible = True
Grid1.Splits(1).Columns(i).Alignment = 2
Next i

'
'Show the left part columns in the left split, and hide in the right split
'
For i = 0 To LockedItems - 1
Grid1.Splits(0).Columns(i).Visible = True
Grid1.Splits(0).Columns(i).Alignment = 2
Grid1.Splits(1).Columns(i).Visible = False
Next i

'''''''Refresh Grid''''''''
Grid1.Refresh

'
'set focus to the right split
'
Grid1.Split = 1

End Sub
========
For more information, please look up MSDN, key words: DataGrid and Splits property.

Regards,

Michi