共用方式為


Windows Form DataGridView 控制項中的選取模式

有時候,您會希望應用程式根據 DataGridView 控制項內的使用者選取項目執行動作。 視動作而定,您可能想要限制可能選取項目的種類。 例如,假設您的應用程式可以列印目前所選記錄的報告。 在此情況下,您可以設定 DataGridView 控制項,以便按一下資料列內的任何位置時一律選取整個資料列,並且一次只能選取一個資料列。

您可以將 DataGridView.SelectionMode 屬性設定為下列其中一個 DataGridViewSelectionMode 列舉值,以指定允許的選取項目。

DataGridViewSelectionMode 值 說明
CellSelect 按一下儲存格會選取此儲存格。 資料列和資料行標頭無法用於選取。
ColumnHeaderSelect 按一下儲存格會選取此儲存格。 按一下資料行標頭會選取整個資料行。 資料行標頭無法用於排序。
FullColumnSelect 按一下儲存格或資料行標頭會選取整個資料行。 資料行標頭無法用於排序。
FullRowSelect 按一下儲存格或資料列標頭會選取整個資料列。
RowHeaderSelect 預設選取模式。 按一下儲存格會選取此儲存格。 按一下資料列標頭會選取整個資料列。

備註

在執行階段變更選取模式會自動清除目前的選取項目。

根據預設,使用者可以藉由使用滑鼠拖曳來選取多個資料列、資料欄或儲存格,也可以在選取時按 CTRL 或 SHIFT 來延展或修改選取項目,或按一下左上方標題儲存格來選取控制項中的所有儲存格。 若要防止此行為,可將 MultiSelect 屬性設定為 false

FullRowSelectRowHeaderSelect 模式可讓使用者藉由選取資料列並按 DELETE 鍵來刪除資料列。 只有當目前儲存格不是處於編輯模式時,使用者才能刪除資料列,AllowUserToDeleteRows 屬性會設定為 true,而基礎資料來源支援使用者驅動的資料列刪除。 請注意,這些設定不會防止以程式設計方式刪除資料列。

以程式設計方式選取

目前的選取模式會限制以程式設計方式選取及使用者選取的行為。 您可以設定 DataGridView 控制項中任何儲存格、資料列或資料行的 Selected 屬性,以程式設計方式變更目前的選取項目。 您也可以根據選取模式,透過 SelectAll 方法選取控制項中的所有儲存格。 若要清除選取項目,請使用 ClearSelection 方法。

如果 MultiSelect 屬性設定為 true,則您可以藉由變更元素的 Selected 屬性,將 DataGridView 元素加入選取項目或從選取項目中移除。 或者,將 Selected 屬性設定為 true,讓一個元素自動從選取項目中移除其他元素。

請注意,變更 CurrentCell 屬性的值並不會改變目前的選取項目。

您可以透過 DataGridView 控制項的 SelectedCellsSelectedRowsSelectedColumns 屬性,擷取目前所選儲存格、資料列或資料行的集合。 選取控制項中的每個儲存格時,存取這些屬性並不具效率。 若要避免在此情況下降低效能,請先使用 AreAllCellsSelected 方法。 此外,存取這些集合以判斷選取的儲存格、資料列或資料行數目可能會不具效率。 相反地,您應該使用 GetCellCountGetRowCountGetColumnCount 方法,並傳入 Selected 值。

小提示

示範以程式設計方式使用所選儲存格的程式碼範例,可以在 DataGridView 類別概觀中取得。

另請參閱