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 控制項中沒有直接的對等用法,但是您可以透過結合 SelectionMode、CellBorderStyle 和 Format 屬性,達到相同的效果。如需詳細資訊,請參閱 Windows Form DataGridView 控制項中的選取模式。
SelLength、SelStart 和 SelText 屬性
在 Visual Basic 6.0 DataGrid 控制項中,當儲存格進入編輯模式時,SelLength、SelStart 和 SelText 屬性都可以用來設定插入號 (Caret) 的初始位置,或反白顯示儲存格中的部分文字。
在 Visual Basic 2008 的 DataGridView 控制項中,已經沒有這些屬性。DataGridView 控制項的儲存格,會根據 TextBox 控制項。您可以藉由將程式碼加入至 EditingControlShowing 事件處理常式,存取基礎控制項的 SelectionLength、SelectionStart 和 SelectedText 屬性。
分割檢視
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 |
|||
AllowAddNew |
AllowNew (BindingSource) |
||
AllowArrows |
不再是可調整的屬性;永遠允許箭號巡覽。如需詳細資訊,請參閱 Windows Form DataGridView 控制項中的預設鍵盤和滑鼠處理。 |
||
AllowDelete |
AllowRemove (BindingSource) |
||
AllowRowSizing |
|||
AllowUpdate |
AllowEdit (BindingSource) |
||
Appearance |
新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Appearance 和 BorderStyle 屬性。 |
||
ApproxCount |
新實作,資料作業是在資料來源中處理。如需詳細資訊,請參閱在 Windows Form DataGridView 控制項中顯示資料。 |
||
BackColor |
|
||
Bookmark |
新實作,您現在可直接存取任何項目。 |
||
Caption |
新實作,使用 Label 控制項來模擬標題列。 |
||
Col |
|||
ColumnHeaders |
|||
Container |
Parent;繼承自 Control。 |
||
CurrentCellModified |
|||
CurrentCellVisible |
|
||
DataChanged |
|||
DataFormats |
|
||
DefColWidth |
WidthDataGridViewColumn 物件。 |
||
DragIcon DragMode |
新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作。 |
||
EditActive |
|||
FirstRow |
|||
Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline |
|
||
ForeColor |
|
||
HeadFont |
|
||
HeadLines |
沒有直接的對等用法。請使用 DataGridViewCellStyle 物件的 WrapMode 屬性,並與 ColumnHeadersHeight 搭配使用。 |
||
Height |
Height,繼承自 Control 類別。
|
||
HelpContextID |
新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援。 |
||
hWnd |
|||
hWndEditor |
新實作,使用 Handle。 |
||
Index |
新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的控制項陣列。 |
||
Left |
Left,繼承自 Control 類別。
|
||
LeftCol |
|||
MarqueeStyle |
沒有直接的對等用法。請使用 SelectionMode、CellBorderStyle 和 Format 屬性。 |
||
RecordSelectors |
|||
Row |
|||
RowDividerStyle |
GridColor、CellBorderStyle、RowHeadersBorderStyle 和 ColumnHeadersBorderStyle 屬性。 |
||
RowHeight |
|||
SelBookmarks |
新實作,您現在可直接存取任何項目。 |
||
SelEndCol SelStartCol |
|||
SelLength |
沒有直接的對等用法。請使用 EditingControlShowing 事件處理常式的 SelectionLength 屬性。 |
||
SelStart |
沒有直接的對等用法。請使用 EditingControlShowing 事件處理常式的 SelectionStart 屬性。 |
||
SelText |
沒有直接的對等用法。請使用 EditingControlShowing 事件處理常式的 SelectedText 屬性。 |
||
Split Splits TabAcrossSplits |
新實作,不直接支援分割檢視,請使用 SplitContainer 控制項。 |
||
TabAction |
|||
Tag |
新實作。 |
||
Text |
CurrentCell.Value
|
||
ToolTipText |
ToolTip 元件 如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 ToolTip 支援。 |
||
Top |
|
||
VisibleCols |
DisplayedColumnCount 方法。
|
||
VisibleRows |
DisplayedRowCount 方法。
|
||
WhatsThisHelpID |
新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援。 |
||
Width |
Width,繼承自 Control 類別。
|
||
WrapCellPointer |
不再是可調整的屬性。預設行為是 WrapCellPointer = True。 |
方法
Visual Basic 6.0 |
Visual Basic 2005 對等用法 |
||
---|---|---|---|
CaptureImage |
新實作,不支援將 DataGridView 控制項的內容擷取至 PictureBox 控制項。 |
||
ClearFields |
新實作,資料行格式化在重新繫結時會自動進行。 |
||
ClearSelCols |
|||
ColContaining |
IndexOf (DataGridViewColumnCollection) |
||
Drag |
新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作。 |
||
GetBookmark |
新實作,不再支援書籤。 |
||
HoldFields |
新實作,資料行格式化在重新繫結時會保留。 |
||
Move |
SetBounds,繼承自 Control 類別。
|
||
Rebind |
ResetBindings,繼承自 Control 類別。 |
||
RowBookmark |
新實作,不再支援書籤。 |
||
RowContaining |
IndexOf (DataGridViewColumnCollection) |
||
RowTop |
GetContentBounds (DataGridViewCell) |
||
Scroll |
新實作方法。使用 CurrentCell 屬性。 |
||
SetFocus |
|||
ShowWhatsThis |
新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的說明支援。 |
||
SplitContaining |
新實作,不直接支援分割檢視,請使用 SplitContainer 控制項。 |
||
ZOrder |
BringToFront() 或 SendToBack() 函式 |
事件
Visual Basic 6.0 |
Visual Basic 2005 對等用法 |
||
---|---|---|---|
AfterColEdit |
|||
AfterColUpdate AfterDelete |
新實作,資料作業是在資料來源中處理。如需詳細資訊,請參閱在 Windows Form DataGridView 控制項中顯示資料。 |
||
AfterUpdate |
|||
BeforeColEdit |
|||
BeforeColUpdate BeforeDelete BeforeInsert BeforeUpdate |
新實作,資料作業是在資料來源中處理。如需詳細資訊,請參閱在 Windows Form DataGridView 控制項中顯示資料。 |
||
ButtonClick |
Click (Button 控制項) |
||
Change |
|
||
Click |
|||
ColEdit |
|||
ColResize |
|||
DblClick |
|||
DragDrop DragOver |
新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作。 |
||
Error |
|||
HeadClick |
|||
MouseDown |
|||
MouseMove |
|||
MouseUp |
|||
OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag |
新實作,如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作。 |
||
OnAddNew |
|||
RowColChange |
|||
RowResize |
|||
SelChange |
|||
SplitChange |
新實作,不直接支援分割檢視,請使用 SplitContainer 控制項。 |
||
Validate |
升級注意事項
當 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)