Visual Basic 6.0 使用者可用的 DataGrid 控制項

更新:2007 年 11 月

Visual Basic 6.0 的 DataGrid 控制項在 Visual Basic 2008 中會以 Windows Form DataGridView 控制項取代。有些屬性、方法、事件及常數的名稱會改變,而且在一些情況下,行為方面也會有差異。

概念上的差異

資料繫結

Visual Basic 2008 的 DataGridView 控制項並不需要特定資料的方法或事件,因為所有動作都是透過資料來源執行的。由於這種展示和資料功能的分隔特性,讓資料來源無論在是否有使用者介面輸入的情況下都可變更。此外,繫結至相同資料來源的多個控制項都會保持在同步的狀態。

巡覽

不再需要使用可以在 DataGrid 控制項 (例如 TabAction、EnterAction、AllowArrows、WrapCellPointer 和 Scrollable) 中進行檢視和巡覽的屬性。例如,方格的運作方法如同 Scrollable 屬性已設定為 True 一樣:如果存在的資料數目超過可以顯示的資料,就會自動出現捲軸。預設值為以 Excel 的形式巡覽整個方格,如此,可以讓使用者利用 TAB 鍵向前移並利用 SHIFT+TAB 組合鍵向後移。如需詳細資訊,請參閱Windows Form DataGridView 控制項中的預設鍵盤和滑鼠處理

Caption 屬性

在 Visual Basic 6.0 中,是使用 Caption 屬性,在方格上方顯示標題列,如果 Caption 屬性保留為空白,則不顯示標題列。

Visual Basic 2008 的 DataGridView 控制項不支援標題列。但是您可以使用 Label 控制項,達到相同的效果。

資料格式化

在 Visual Basic 6.0 中,是使用 DataFormat 屬性和 StdDataFormat 物件,處理 DataGrid 控制項中的格式化資料。格式化是根據資料行逐一套用。

在 Visual Basic 2008 的 DataGridView 控制項中,格式化是使用 DataGridViewCellStyle 物件的 Format 屬性來達成。格式化可以套用至個別的儲存格、資料行或資料列。如需詳細資訊,請參閱 Windows Form DataGridView 控制項中的資料格式

hWndEditor 屬性

在 Visual Basic 6.0 中,是使用 hWndEditor 屬性,將指派給 DataGrid 控制項編輯視窗的視窗控制代碼 (Window Handle) 傳遞給 Windows API 呼叫。

但是 Visual Basic 2008DataGridView 控制項在編輯模式下並未另外具有視窗控制代碼,而是改用 DataGridView 控制項或任何內嵌編輯控制項的 Handle 屬性。

MarqueeStyle 屬性

在 Visual Basic 6.0 中,MarqueeStyle 屬性會透過變更框線樣式、反轉前景和背景色彩,或叫用編輯視窗,控制所選取儲存格或資料列的外觀。

在 Visual Basic 2008 的 DataGridView 控制項中沒有直接的對等用法,但是您可以透過結合 SelectionModeCellBorderStyleFormat 屬性,達到相同的效果。如需詳細資訊,請參閱 Windows Form DataGridView 控制項中的選取模式

SelLength、SelStart 和 SelText 屬性

在 Visual Basic 6.0 DataGrid 控制項中,當儲存格進入編輯模式時,SelLength、SelStart 和 SelText 屬性都可以用來設定插入號 (Caret) 的初始位置,或反白顯示儲存格中的部分文字。

在 Visual Basic 2008 的 DataGridView 控制項中,已經沒有這些屬性。DataGridView 控制項的儲存格,會根據 TextBox 控制項。您可以藉由將程式碼加入至 EditingControlShowing 事件處理常式,存取基礎控制項的 SelectionLengthSelectionStartSelectedText 屬性。

分割檢視

Visual Basic 6.0 DataGrid 控制項支援分割檢視,可以讓使用者並存顯示相同的資料。Split 物件、Split、Splits 和 TabAcrossSplits 屬性控制顯示分割檢視的功能。

在 Visual Basic 2008 的 DataGridView 控制項中,已經沒有這些屬性。但是您可以使用一個或多個 SplitContainer 控制項,以及多個 DataGridView 控制項,達到相同的效果。若要複製 TabAcrossSplits 屬性的功能,您可以使用 DataGridView 控制項的 StandardTab 屬性。

DataGrid 控制項的程式碼變更

在下列程式碼中,會透過示範使用者選取 DataGridView 控制項中的儲存格時,各版本如何反白顯示儲存中的文字,顯示出 Visual Basic 6.0 和 Visual Basic 2008 之間的差異。

' 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 列舉型別 (Enumeration) 都會對應到 System.Windows.Forms 命名空間 (Namespace)。

此資料表提供解釋行為差異的主題之連結。若 Visual Basic 2008 中沒有直接的對等用法,則提供連結至替代的主題。

屬性

Visual Basic 6.0

Visual Basic 2005 對等用法

AddNewMode

新實作,資料作業是在資料來源中處理。如需詳細資訊,請參閱在 Windows Form DataGridView 控制項中顯示資料

Align

DockAnchor

AllowAddNew

AllowNew (BindingSource)

AllowArrows

不再是可調整的屬性;永遠允許箭號巡覽。如需詳細資訊,請參閱 Windows Form DataGridView 控制項中的預設鍵盤和滑鼠處理

AllowDelete

AllowRemove (BindingSource)

AllowRowSizing

AllowUserToResizeRows

AllowUpdate

AllowEdit (BindingSource)

Appearance

新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Appearance 和 BorderStyle 屬性

ApproxCount

新實作,資料作業是在資料來源中處理。如需詳細資訊,請參閱在 Windows Form 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 中會以不同方式處理字型。如需詳細資訊,請參閱 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 使用者可用的 ToolTip 支援

Top

Top

注意事項:

在 Visual Basic 2008 中會以不同方式處理座標。 如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統

VisibleCols

DisplayedColumnCount 方法。

注意事項:

在 Visual Basic 6.0 中,部分可見的資料行一定會列入計數中。DisplayedColumnCount 方法會使用 Boolean includePartialColumns 參數,判斷是否已包含部分可見的資料行。

VisibleRows

DisplayedRowCount 方法。

注意事項:

在 Visual Basic 6.0 中,部分可見的資料列一定會列入計數中。DisplayedRowCount 方法會使用 Boolean 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 Form DataGridView 控制項中顯示資料

AfterUpdate

RowsAdded

BeforeColEdit

CellBeginEdit

BeforeColUpdate

BeforeDelete

BeforeInsert

BeforeUpdate

新實作,資料作業是在資料來源中處理。如需詳細資訊,請參閱在 Windows Form DataGridView 控制項中顯示資料

ButtonClick

Click (Button 控制項)

Change

TextChanged

注意事項:

TextChanged 事件的行為有些許不同。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 ComboBox 控制項 Change 事件

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 2008 之 DataGridView 控制項的 TextChanged 事件。TextChanged 事件的行為與 Change 事件的行為有所差異;這樣的差異性可能造成程式碼中非預期的結果。

任何與特定資料方法或事件相關的程式碼都不會升級,而會在程式碼中加入警告註解,必須先移除或修改程式碼,才能編譯應用程式。

請參閱

概念

DataGridView 控制項技術摘要 (Windows Form)

Windows Form 針對 .NET Framework 2.0 提供的額外功能

參考

DataGridView 控制項概觀 (Windows Form)

比較不同語言和程式庫的控制項與程式物件

其他資源

DataGridView 控制項 (Windows Form)

Visual Basic 6.0 使用者可用的 Windows Form 控制項

Windows Form 資料繫結