适用于 Visual Basic 6.0 用户的 DataGrid 控件

更新:2007 年 11 月

Visual Basic 6.0 中的 DataGrid 控件在 Visual Basic 2008 中由 Windows 窗体 DataGridView 控件所取代。某些属性、方法、事件和常量的名称是不同的,在某些情况下,行为也有所不同。

概念差异

数据绑定

因为所有操作都通过数据源来执行,所以 Visual Basic 2008DataGridView 控件不需要数据特定的方法或事件。由于这种表示和数据功能的分离,无论是否存在用户界面输入,都可以更改数据源。另外,绑定到同一个数据源的多个控件将始终保持同步。

导航

不再需要用于在 DataGrid 控件中查看和导航的属性(例如 TabAction、EnterAction、AllowArrows、WrapCellPointer 和 Scrollable)。例如,网格表现出的行为好像是 Scrollable 属性设置为 True:如果存在较多的数据,无法同时显示,滚动条将自动出现。默认情况下,将在网格中进行 Excel 样式的导航,用户可以使用 Tab 键前移,使用 Shift+Tab 组合键后移。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的默认键盘和鼠标处理

Caption 属性

在 Visual Basic 6.0 中,Caption 属性用来在网格上方显示标题栏;如果将 Caption 属性留空,则不显示标题栏。

Visual Basic 2008DataGridView 控件不支持标题栏。但是您可以使用 Label 控件达到相同的效果。

数据格式化

在 Visual Basic 6.0 中,使用 DataFormat 属性和 StdDataFormat 对象处理 DataGrid 控件中的格式化数据。格式设置是逐列应用的。

在 Visual Basic 2008DataGridView 控件中,格式化是使用 DataGridViewCellStyle 对象的 Format 属性来完成的。格式化可应用于各单元格、列或行。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的数据格式设置

hWndEditor 属性

在 Visual Basic 6.0 中,hWndEditor 属性用来将分配给 DataGrid 控件的编辑窗口的窗口句柄传递给 Windows API 调用。

Visual Basic 2008DataGridView 控件处于编辑模式时没有单独的窗口句柄;改为使用 DataGridView 控件或任何嵌入式编辑控件的 Handle 属性。

MarqueeStyle 属性

在 Visual Basic 6.0 中,MarqueeStyle 属性通过更改边框样式、反转前景色和背景色或调用编辑窗口来控制选择的单元格或行的外观。

没有 Visual Basic 2008DataGridView 控件的直接等效项。但是可以通过组合 SelectionModeCellBorderStyleFormat 属性达到相同的效果。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的选择模式

SelLength、SelStart 和 SelText 属性

在 Visual Basic 6.0 DataGrid 控件中,当单元格进入编辑模式时,SelLength、SelStart 和 SelText 属性可以用于设置插入符号的初始位置或在单元格中突出显示文本的某一部分。

在 Visual Basic 2008DataGridView 控件中,不再存在这些属性。DataGridView 控件中的单元格以 TextBox 控件为基础;通过向 EditingControlShowing 事件处理程序添加代码,您可以访问基础控件的 SelectionLengthSelectionStartSelectedText 属性。

拆分视图

Visual Basic 6.0 DataGrid 控件支持拆分视图,因此用户可以并行显示相同的数据。Split 对象以及 Split、Splits 和 TabAcrossSplits 属性控制着显示拆分视图的能力。

在 Visual Basic 2008DataGridView 控件中,不再存在这些属性。但是可以使用一个或多个 SplitContainer 控件和多个 DataGridView 控件来达到相同的效果。若要复制 TabAcrossSplits 属性的功能,可以使用 DataGridView 控件的 StandardTab 属性。

DataGrid 控件的代码更改

下面的代码通过如下方式说明 Visual Basic 6.0 和 Visual Basic 2008 之间的差异:演示当用户在 DataGridView 控件中选择一个单元格时,每个版本如何突出显示该单元格的文本。

' 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 Basic
Private Sub DataGridView1_EditingControlShowing( _
ByVal sender As Object, 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)
End Sub

DataGrid 控件的属性、方法和事件等效项

下表列出了 Visual Basic 6.0 属性、方法和事件,以及它们的 Visual Basic 2008 等效项。具有相同的名称和行为的属性、方法和事件未予列出。除非另有说明,否则所有的 Visual Basic 2008 枚举都映射到 System.Windows.Forms 命名空间。

此表提供相关主题的链接,这些主题对行为之间的差异进行说明。如果 Visual Basic 2008 中没有直接等效项,则提供指向介绍其他替代项的主题的链接。

属性

Visual Basic 6.0

Visual Basic 2005 等效项

AddNewMode

新的实现。数据操作在数据源中处理。有关更多信息,请参见 在 Windows 窗体 DataGridView 控件中显示数据

Align

DockAnchor

AllowAddNew

AllowNew (BindingSource)

AllowArrows

不再是可调节的属性:始终允许使用箭头键进行导航。有关更多信息,请参见 Windows 窗体 DataGridView 控件中的默认键盘和鼠标处理

AllowDelete

AllowRemove (BindingSource)

AllowRowSizing

AllowUserToResizeRows

AllowUpdate

AllowEdit (BindingSource)

Appearance

新的实现。有关更多信息,请参见 Appearance 和 BorderStyle 属性(针对 Visual Basic 6.0 用户)

ApproxCount

新的实现。数据操作在数据源中处理。有关更多信息,请参见 在 Windows 窗体 DataGridView 控件中显示数据

BackColor

BackgroundColor

说明:

颜色在 Visual Basic 2008 中以不同方式处理。有关更多信息,请参见颜色行为(针对 Visual Basic 6.0 用户)

Bookmark

新的实现。您现在可以直接访问任意项。

Caption

新的实现。使用 Label 控件来模拟标题栏。

Col

SelectedColumns

ColumnHeaders

ColumnHeadersVisible

Container

Parent;继承自 Control。

CurrentCellModified

IsCurrentCellDirty, IsCurrentCellInEditMode

CurrentCellVisible

CurrentCell

说明:

如果将 CurrentCell 属性设置为不可见的单元格,则网格将通过滚动来显示该单元格(类似于设置 CurrentCellVisible = True)。

DataChanged

IsCurrentCellDirty, IsCurrentRowDirty

DataFormats

DataGridViewCellStyle 对象。

说明:

可为各单元格、列或行设置格式化。

DefColWidth

WidthDataGridViewColumn 对象。

DragIcon

DragMode

新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)

EditActive

IsCurrentCellInEditMode

FirstRow

FirstDisplayedScrollingRowIndex

Font

FontBold

FontItalic

FontName

FontSize

FontStrikethrough

FontUnderline

Font

说明:

字体在 Visual Basic 2008 中以不同方式处理。有关更多信息,请参见 字体处理(针对 Visual Basic 6.0 用户)

ForeColor

ForeColor

说明:

颜色在 Visual Basic 2008 中以不同方式处理。有关更多信息,请参见颜色行为(针对 Visual Basic 6.0 用户)

HeadFont

DataGridViewCellStyle 对象。

说明:

字体在 Visual Basic 2008 中以不同方式处理。有关更多信息,请参见 Font 对象(针对 Visual Basic 6.0 用户)

HeadLines

无直接等效项。将 DataGridViewCellStyle 对象的 WrapMode 属性和 ColumnHeadersHeight 组合使用。

Height

Height,继承自 Control 类。

说明:

坐标在 Visual Basic 2008 中以不同方式处理。有关更多信息,请参见坐标系统(针对 Visual Basic 6.0 用户)

HelpContextID

新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)

hWnd

Handle

hWndEditor

新的实现。使用 Handle。

Index

新的实现。有关更多信息,请参见控件数组(针对 Visual Basic 6.0 用户)

Left

Left,继承自 Control 类。

说明:

坐标在 Visual Basic 2008 中以不同方式处理。有关更多信息,请参见坐标系统(针对 Visual Basic 6.0 用户)

LeftCol

FirstDisplayedScrollingColumnIndex

MarqueeStyle

无直接等效项。使用 SelectionModeCellBorderStyleFormat 属性。

RecordSelectors

RowHeadersVisible

Row

SelectedRows

RowDividerStyle

GridColorCellBorderStyleRowHeadersBorderStyleColumnHeadersBorderStyle 属性。

RowHeight

Height

SelBookmarks

新的实现。您现在可以直接访问任意项。

SelEndCol

SelStartCol

SelectedCells, SelectedColumns

SelLength

无直接等效项。在 EditingControlShowing 事件处理程序中使用 SelectionLength 属性。

SelStart

无直接等效项。在 EditingControlShowing 事件处理程序中使用 SelectionStart 属性。

SelText

无直接等效项。在 EditingControlShowing 事件处理程序中使用 SelectedText 属性。

Split

Splits

TabAcrossSplits

新的实现。不直接支持拆分视图;需使用 SplitContainer 控件。

TabAction

StandardTab

Tag

新的实现。

Text

CurrentCell.Value

说明:

Value 属性返回 Object;使用 CStr 或 ToString 可将其转换为 String。

ToolTipText

ToolTip 组件

有关更多信息,请参见工具提示支持(针对 Visual Basic 6.0 用户)

Top

Top

说明:

坐标在 Visual Basic 2008 中以不同方式处理。有关更多信息,请参见坐标系统(针对 Visual Basic 6.0 用户)

VisibleCols

DisplayedColumnCount 方法。

说明:

在 Visual Basic 6.0 中,计数中通常包含部分可见的列;DisplayedColumnCount 方法使用布尔型 includePartialColumns 参数来确定是否包含部分可见的列。

VisibleRows

DisplayedRowCount 方法。

说明:

在 Visual Basic 6.0 中,计数中通常包含部分可见的行;DisplayedRowCount 方法使用布尔型 includePartialRows 参数来确定是否包含部分可见的行。

WhatsThisHelpID

新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)

Width

Width,继承自 Control 类。

说明:

坐标在 Visual Basic 2008 中以不同方式处理。有关更多信息,请参见坐标系统(针对 Visual Basic 6.0 用户)

WrapCellPointer

不再是可调节的属性;默认行为是 WrapCellPointer = True。

方法

Visual Basic 6.0

Visual Basic 2005 等效项

CaptureImage

新的实现。不支持将 DataGridView 控件的内容捕获给 PictureBox 控件。

ClearFields

新的实现。重新绑定时将自动设置列格式。

ClearSelCols

ClearSelection

ColContaining

IndexOf (DataGridViewColumnCollection)

Drag

新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)

GetBookmark

新的实现。不再支持书签。

HoldFields

新的实现。重新绑定时保留列的格式设置。

Move

SetBounds,继承自 Control 类。

说明:

坐标在 Visual Basic 2008 中以不同方式处理。有关更多信息,请参见 坐标系统(针对 Visual Basic 6.0 用户)

Rebind

ResetBindings,继承自 Control 类。

RowBookmark

新的实现。不再支持书签。

RowContaining

IndexOf (DataGridViewColumnCollection)

RowTop

GetContentBounds (DataGridViewCell)

Scroll

新的实现方法。使用 CurrentCell 属性。

SetFocus

Focus

ShowWhatsThis

新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)

SplitContaining

新的实现。不直接支持拆分视图;需使用 SplitContainer 控件。

ZOrder

BringToFront() 或 SendToBack() 函数

事件

Visual Basic 6.0

Visual Basic 2005 等效项

AfterColEdit

CellEndEdit

AfterColUpdate

AfterDelete

新的实现。数据操作在数据源中处理。有关更多信息,请参见 在 Windows 窗体 DataGridView 控件中显示数据

AfterUpdate

RowsAdded

BeforeColEdit

CellBeginEdit

BeforeColUpdate

BeforeDelete

BeforeInsert

BeforeUpdate

新的实现。数据操作在数据源中处理。有关更多信息,请参见 在 Windows 窗体 DataGridView 控件中显示数据

ButtonClick

Click(Button 控件)

Change

TextChanged

说明:

TextChanged 事件的行为略有不同。有关更多信息,请参见 ComboBox 控件更改事件(针对 Visual Basic 6.0 用户)

Click

SelectedIndexChanged

ColEdit

CellBeginEdit

ColResize

ColumnWidthChanged

DblClick

CellMouseDoubleClick

DragDrop

DragOver

新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)

Error

DataError

HeadClick

ColumnHeaderMouseClick

MouseDown

CellMouseDown

MouseMove

CellMouseMove

MouseUp

CellMouseUp

OLECompleteDrag

OLEDragDrop

OLEDragOver

OLEGiveFeedback

OLESetData

OLEStartDrag

新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)

OnAddNew

RowsAdded

RowColChange

CurrentCellChanged

RowResize

RowHeightChanged

SelChange

SelectionChanged

SplitChange

新的实现。不直接支持拆分视图;需使用 SplitContainer 控件。

Validate

Validating

升级说明

当 Visual Basic 6.0 项目升级到 Visual Basic 2008 时,DataGrid 控件的 Change 事件将映射到 Visual Basic 2008DataGridView 控件的 TextChanged 事件。TextChanged 事件的行为不同于 Change 事件的行为,此差异可能会在代码中导致意外的结果。

任何与特定于数据的方法和事件相关的代码不会升级。代码中会添加警告注释,在编译应用程序前必须移除或修改这些代码。

请参见

概念

DataGridView 控件技术摘要(Windows 窗体)

对 .NET Framework 2.0 的 Windows 窗体的改进

参考

DataGridView 控件概述(Windows 窗体)

不同语言和库中的控件和可编程对象的比较

其他资源

DataGridView 控件(Windows 窗体)

适用于 Visual Basic 6.0 用户的 Windows 窗体控件

Windows 窗体数据绑定