共用方式為


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 並不會改變目前的選取範圍。

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

提示

您可以在類別概觀中找到 DataGridView 示範以程式設計方式使用所選儲存格的程式碼。

另請參閱