DataGrid Control for Visual Basic 6.0 Users
The DataGrid control in Visual Basic 6.0 is replaced by the Windows Forms DataGridView control in Visual Basic 2008. The names of some properties, methods, events, and constants are different, and in some cases there are differences in behavior.
Conceptual Differences
Data Binding
The Visual Basic 2008 DataGridView control does not need data-specific methods or events because all actions are performed through the data source. Because of this separation of presentation and data functionality, the data source can be changed with or without user interface input. Also, multiple controls bound to the same data source will always stay in sync.
Navigation
Properties for viewing and navigation in the DataGrid control (such as TabAction, EnterAction, AllowArrows, WrapCellPointer, and Scrollable) are no longer needed. For example, the grid functions as though the Scrollable property is set to True: If more data exists than can be displayed, a scroll bar appears automatically. Excel-style navigation through the grid is the default, allowing the user to move forward with the TAB key and backward with the SHIFT+TAB key combination. For more information, see Default Keyboard and Mouse Handling in the Windows Forms DataGridView Control.
Caption Property
In Visual Basic 6.0, the Caption property is used to display a title bar above the grid; if the Caption property is left empty, no title bar is displayed.
The Visual Basic 2008 DataGridView control does not support a title bar. However, you can achieve the same effect using a Label control.
Data Formatting
In Visual Basic 6.0, formatting data in the DataGrid control is handled using the DataFormat property and a StdDataFormat object. Formatting is applied on a column-by-column basis.
In the Visual Basic 2008 DataGridView control, formatting is accomplished using the Format property of a DataGridViewCellStyle object. Formatting can be applied to individual cells, columns, or rows. For more information, see Data Formatting in the Windows Forms DataGridView Control.
hWndEditor Property
In Visual Basic 6.0, the hWndEditor property is used to pass the window handle assigned to a DataGrid control's editing window to a Windows API call.
The Visual Basic 2008 DataGridView control does not have a separate window handle when in edit mode; instead, use the Handle property of the DataGridView control or any embedded edit controls.
MarqueeStyle Property
In Visual Basic 6.0, the MarqueeStyle property controls the appearance of a selected cell or row by changing the border style, inverting the foreground and background colors, or invoking an edit window.
There is no direct equivalent for the Visual Basic 2008 DataGridView control. However, you can achieve the same effect through a combination of the SelectionMode, CellBorderStyle, and Format properties. For more information, see Selection Modes in the Windows Forms DataGridView Control.
SelLength, SelStart, SelText Properties
In the Visual Basic 6.0 DataGrid control, when a cell enters edit mode, the SelLength, SelStart, and SelText properties can be used to set the initial position of the caret or to highlight a portion of the text in the cell.
In the Visual Basic 2008 DataGridView control, these properties no longer exist. The cells in the DataGridView control are based on the TextBox control; by adding code to the EditingControlShowing event handler you can access the SelectionLength, SelectionStart, and SelectedText properties of the underlying control.
Split Views
The Visual Basic 6.0 DataGrid control supports a split view, allowing the user to display the same data side-by-side. The Split object and the Split, Splits, and TabAcrossSplits properties control the ability to display a split view.
In the Visual Basic 2008 DataGridView control, these properties no longer exist. However, you can achieve the same effect using one or more SplitContainer controls and multiple DataGridView controls. To duplicate the functionality of the TabAcrossSplits property, you can use the StandardTab property of the DataGridView control.
Code Changes for the DataGrid Control
The following code demonstrates the differences between Visual Basic 6.0 and Visual Basic 2008 by showing how, in each version, to highlight the text in a cell when a user selects the cell in a DataGridView control.
' Visual Basic 6.0
Private Sub DataGrid1_Click()
DataGrid1.SelStart = 1
DataGrid1.SelLength = DataGrid1.Text
MsgBox("The selected text is " & DataGrid1.SelText)
End Sub
' Visual BasicPrivateSub DataGridView1_EditingControlShowing( _
ByVal sender AsObject, ByVal e As System.Windows.Forms. _
DataGridViewEditingControlShowingEventArgs) _
Handles DataGridView1.EditingControlShowing
CType(e.Control, TextBox).SelectionStart = 0
CType(e.Control, TextBox).SelectionLength = Len(CType(e.Control, _
TextBox).Text)
MsgBox("The selected text is " & CType(e.Control, _
TextBox).SelectedText)
EndSub
DataGrid Control Property, Method, and Event Equivalencies
The following tables list Visual Basic 6.0 properties, methods, and events, along with their Visual Basic 2008 equivalents. Those properties, methods, and events that have the same name and behavior are not listed. All Visual Basic 2008 enumerations map to the System.Windows.Forms namespace unless otherwise noted.
This table provides links to topics explaining behavior differences. Where there is no direct equivalent in Visual Basic 2008, links are provided to topics that present alternatives.
Properties
Visual Basic 6.0 |
Visual Basic 2005 Equivalent |
---|---|
AddNewMode |
New implementation. Data operations are handled in the data source. For more information, see Displaying Data in the Windows Forms DataGridView Control. |
Align |
|
AllowAddNew |
AllowNew (BindingSource) |
AllowArrows |
No longer an adjustable property; arrow navigation always allowed. For more information, see Default Keyboard and Mouse Handling in the Windows Forms DataGridView Control. |
AllowDelete |
AllowRemove (BindingSource) |
AllowRowSizing |
|
AllowUpdate |
AllowEdit (BindingSource) |
Appearance |
New implementation. For more information, see Appearance and BorderStyle Properties for Visual Basic 6.0 Users. |
ApproxCount |
New implementation. Data operations are handled in the data source. For more information, see Displaying Data in the Windows Forms DataGridView Control. |
BackColor |
Note:
Colors are handled differently in Visual Basic 2008. For more information, see Color Behavior for Visual Basic 6.0 Users.
|
Bookmark |
New implementation. You can now directly access any item. |
Caption |
New implementation. Use a Label control to simulate a title bar. |
Col |
|
ColumnHeaders |
|
Container |
Parent; inherited from Control. |
CurrentCellModified |
|
CurrentCellVisible |
Note:
If the CurrentCell property is set to a cell that is not visible, the grid scrolls to show that cell (similar to setting CurrentCellVisible = True).
|
DataChanged |
|
DataFormats |
DataGridViewCellStyle.object.
Note:
Formatting can be set for an individual cell, column, or row.
|
DefColWidth |
WidthDataGridViewColumn object. |
DragIcon DragMode |
New implementation. For more information, see Drag and Drop for Visual Basic 6.0 Users. |
EditActive |
|
FirstRow |
|
Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline |
Note:
Fonts are handled differently in Visual Basic 2008. For more information, see Font Handling for Visual Basic 6.0 Users.
|
ForeColor |
Note:
Colors are handled differently in Visual Basic 2008. For more information, see Color Behavior for Visual Basic 6.0 Users.
|
HeadFont |
DataGridViewCellStyle object.
Note:
Fonts are handled differently in Visual Basic 2008. For more information, see Font Object for Visual Basic 6.0 Users.
|
HeadLines |
No direct equivalent. Use the WrapMode property of the DataGridViewCellStyle object in combination with ColumnHeadersHeight. |
Height |
Height, inherited from Control class.
Note:
Coordinates are handled differently in Visual Basic 2008. For more information, see Coordinate System for Visual Basic 6.0 Users.
|
HelpContextID |
New implementation. For more information, see Help Support for Visual Basic 6.0 Users. |
hWnd |
|
hWndEditor |
New implementation. Use Handle. |
Index |
New implementation. For more information, see Control Arrays for Visual Basic 6.0 Users. |
Left |
Left, inherited from Control class.
Note:
Coordinates are handled differently in Visual Basic 2008. For more information, see Coordinate System for Visual Basic 6.0 Users.
|
LeftCol |
|
MarqueeStyle |
No direct equivalent. Use the SelectionMode, CellBorderStyle, and Format properties. |
RecordSelectors |
|
Row |
|
RowDividerStyle |
GridColor, CellBorderStyle, RowHeadersBorderStyle, ColumnHeadersBorderStyle properties. |
RowHeight |
|
SelBookmarks |
New implementation. You can now directly access any item. |
SelEndCol SelStartCol |
|
SelLength |
No direct equivalent. Use the SelectionLength property in the EditingControlShowing event handler. |
SelStart |
No direct equivalent. Use the SelectionStart property in the EditingControlShowing event handler. |
SelText |
No direct equivalent. Use the SelectedText property in the EditingControlShowing event handler. |
Split Splits TabAcrossSplits |
New implementation. Split views are not directly supported; use a SplitContainer control. |
TabAction |
|
Tag |
New implementation. |
Text |
CurrentCell.Value
Note:
The Value property returns an Object; use CStr or ToString to convert it to a String.
|
ToolTipText |
ToolTip component For more information, see ToolTip Support for Visual Basic 6.0 Users. |
Top |
Note:
Coordinates are handled differently in Visual Basic 2008. For more information, see Coordinate System for Visual Basic 6.0 Users.
|
VisibleCols |
DisplayedColumnCount method.
Note:
In Visual Basic 6.0, partially visible columns are always included in the count; the DisplayedColumnCount method uses a Boolean includePartialColumns parameter to determine whether partially visible columns are included.
|
VisibleRows |
DisplayedRowCount method.
Note:
In Visual Basic 6.0, partially visible rows are always included in the count; the DisplayedRowCount method uses a Boolean includePartialRows parameter to determine whether partially visible rows are included.
|
WhatsThisHelpID |
New implementation. For more information, see Help Support for Visual Basic 6.0 Users. |
Width |
Width, inherited from Control class.
Note:
Coordinates are handled differently in Visual Basic 2008. For more information, see Coordinate System for Visual Basic 6.0 Users.
|
WrapCellPointer |
No longer an adjustable property; default behavior is WrapCellPointer = True. |
Methods
Visual Basic 6.0 |
Visual Basic 2005 Equivalent |
---|---|
CaptureImage |
New implementation. Capturing the contents of a DataGridView control to a PictureBox control is not supported. |
ClearFields |
New implementation. Column formatting is automatic when re-binding. |
ClearSelCols |
|
ColContaining |
IndexOf (DataGridViewColumnCollection) |
Drag |
New implementation. For more information, see Drag and Drop for Visual Basic 6.0 Users.. |
GetBookmark |
New implementation. Bookmarks are no longer supported. |
HoldFields |
New implementation. Column formatting is preserved when rebinding. |
Move |
SetBounds, inherited from Control class.
Note:
Coordinates are handled differently in Visual Basic 2008. For more information, seeCoordinate System for Visual Basic 6.0 Users.
|
Rebind |
ResetBindings, inherited from Control class. |
RowBookmark |
New implementation. Bookmarks are no longer supported. |
RowContaining |
IndexOf (DataGridViewColumnCollection) |
RowTop |
GetContentBounds (DataGridViewCell) |
Scroll |
New implementation method. Use the CurrentCell property. |
SetFocus |
|
ShowWhatsThis |
New implementation. For more information, see Help Support for Visual Basic 6.0 Users. |
SplitContaining |
New implementation. Split views are not directly supported; use a SplitContainer control. |
ZOrder |
BringToFront()or SendToBack()functions |
Events
Visual Basic 6.0 |
Visual Basic 2005 Equivalent |
---|---|
AfterColEdit |
|
AfterColUpdate AfterDelete |
New implementation. Data operations are handled in the data source. For more information, see Displaying Data in the Windows Forms DataGridView Control. |
AfterUpdate |
|
BeforeColEdit |
|
BeforeColUpdate BeforeDelete BeforeInsert BeforeUpdate |
New implementation. Data operations are handled in the data source. For more information, see Displaying Data in the Windows Forms DataGridView Control. |
ButtonClick |
Click (Button control) |
Change |
Note:
The behavior of the TextChanged event is slightly different. For more information, see ComboBox Control Change Event for Visual Basic 6.0 Users.
|
Click |
|
ColEdit |
|
ColResize |
|
DblClick |
|
DragDrop DragOver |
New implementation. For more information, see Drag and Drop for Visual Basic 6.0 Users. |
Error |
|
HeadClick |
|
MouseDown |
|
MouseMove |
|
MouseUp |
|
OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag |
New implementation. For more information, see Drag and Drop for Visual Basic 6.0 Users. |
OnAddNew |
|
RowColChange |
|
RowResize |
|
SelChange |
|
SplitChange |
New implementation. Split views are not directly supported; use a SplitContainer control. |
Validate |
Upgrade Notes
When a Visual Basic 6.0 project is upgraded to Visual Basic 2008, the Change event of the DataGrid control is mapped to the TextChanged event of the Visual Basic 2008 DataGridView control. The behavior of the TextChanged event differs from that of the Change event; this difference may cause unintended results in your code.
Any code related to data-specific methods or events is not upgraded. Warning comments are added to the code, and the code must be removed or modified before compiling the application.
See Also
Concepts
DataGridView Control Technology Summary (Windows Forms)
Additions to Windows Forms for the .NET Framework 2.0
Reference
DataGridView Control Overview (Windows Forms)
Controls and Programmable Objects Compared in Different Languages and Libraries
Other Resources
DataGridView Control (Windows Forms)