共用方式為


DataGrid 控制項中的預設鍵盤和滑鼠行為

本主題描述使用者可如何使用鍵盤和滑鼠與 DataGrid 控制項互動。

DataGrid 的一般互動包括瀏覽、選取和編輯。 選取行為會受到 SelectionModeSelectionUnit 屬性的影響。 造成本主題所述行為的預設值是 DataGridSelectionMode.ExtendedDataGridSelectionUnit.FullRow。 變更這些值可能會導致行為與所述的行為不同。 當儲存格處於編輯模式時,編輯控制項可能會覆寫 DataGrid 的標準鍵盤行為。

預設鍵盤行為

下表列出 DataGrid 的預設鍵盤行為。

按鍵或按鍵組合 描述
DOWN ARROW 將焦點移至目前的儲存格正下方的儲存格。 如果焦點位於最後一個資料列中,按向下鍵不會執行任何動作。
向上鍵 將焦點移至目前的儲存格正上方的儲存格。 如果焦點位於第一個資料列中,按向上鍵不會執行任何動作。
向左鍵 將焦點移至資料列中的上一個儲存格。 如果焦點位於資料列中的第一個儲存格,按向左鍵不會執行任何動作。
向右鍵 將焦點移至資料列中的下一個儲存格。 如果焦點位於資料列中的最後一個儲存格,按向右鍵不會執行任何動作。
HOME 將焦點移至目前資料列中的第一個儲存格。
END 將焦點移至目前資料列中的最後一個儲存格。
PAGE DOWN 如果資料列未分組,依完全顯示的資料列數目向下捲動控制項。 將焦點移至最後一個完全顯示的資料列,而不變更資料行。

如果資料列已分組,將焦點移至 DataGrid 中的最後一個資料列,而不變更資料行。
PAGE UP 如果資料列未分組,依完全顯示的資料列數目向上捲動控制項。 將焦點移至第一個顯示的資料列,而不變更資料行。

如果資料列已分組,將焦點移至 DataGrid 中的第一個資料列,而不變更資料行。
TAB 將焦點移至目前資料列中的下一個儲存格。 如果焦點已在資料列的最後一個儲存格中,則會將焦點移至下一個資料列中的第一個儲存格。 如果焦點位於控制項的最後一個儲存格中,則會以父容器的定位順序將焦點移至下一個控制項。

如果目前的儲存格處於編輯模式,按 TAB 鍵會使焦點遠離目前的資料列,對資料列所做的任何變更會在焦點變更之前認可。
SHIFT+TAB 將焦點移至目前資料列中的上一個儲存格。 如果焦點已經在資料列的第一個儲存格中,則會將焦點移至上一列的最後一個儲存格。 如果焦點位於控制項的第一個儲存格中,則會將焦點移至上一個控制項的父容器定位順序。

如果目前的儲存格處於編輯模式,按 TAB 鍵會使焦點遠離目前的資料列,對資料列所做的任何變更會在焦點變更之前認可。
CTRL+向下鍵 將焦點移至目前資料行中的最後一個儲存格。
CTRL+向上鍵 將焦點移至目前資料行中的第一個儲存格。
CTRL+向右鍵 將焦點移至目前資料列中的最後一個儲存格。
CTRL+向左鍵 將焦點移至目前資料列中的第一個儲存格。
CTRL+HOME 將焦點移至控制項中的第一個儲存格。
CTRL+END 將焦點移至控制項中的最後一個儲存格。
CTRL+PAGE DOWN 與 PAGE DOWN 相同。
CTRL+PAGE UP 與 PAGE UP 相同。
F2 如果 DataGrid.IsReadOnly 屬性是 false,而且目前資料行的 DataGridColumn.IsReadOnly 屬性是 false,請將目前的儲存格放入儲存格編輯模式。
ENTER 認可目前的儲存格和資料列的任何變更,並將焦點移至目前的儲存格正下方的儲存格。 如果焦點位於最後一個資料列中,則會認可任何變更而不移動焦點。
ESC 如果控制項處於編輯模式,請取消編輯,並還原控制項中所做的任何變更。 如果基礎資料來源實作 IEditableObject,則第二次按 ESC 鍵會取消整個資料列的編輯模式。
退格鍵 編輯儲存格時,刪除游標之前的字元。
DELETE 編輯儲存格時,刪除游標之後的字元。
CTRL+ENTER 認可對目前的儲存格的任何變更,而不移動焦點。
CTRL+A 如果 SelectionMode 設定為 Extended,請選取 DataGrid 中的所有資料列。

選取鍵

如果 SelectionMode 屬性設定為 Extended,則瀏覽行為不會變更,但在按 SHIFT (包括 CTRL+SHIFT) 鍵時以鍵盤瀏覽將會修改多重資料列選取範圍。 瀏覽開始之前,控制項會將目前的資料列標示為錨點資料列。 當您按下 SHIFT 瀏覽時,選取範圍會包含錨點資料列與目前的資料列之間的所有資料列。

下列選取鍵會修改多重資料列選取範圍。

  • SHIFT+向下鍵

  • SHIFT+向上鍵

  • SHIFT+PAGE DOWN

  • SHIFT+PAGE UP

  • CTRL+SHIFT+向下鍵

  • CTRL+SHIFT+向上鍵

  • CTRL+SHIFT+HOME

  • CTRL+SHIFT+END

預設滑鼠行為

下表列出 DataGrid 的預設滑鼠行為。

滑鼠動作 描述
按一下未選取的資料列 將點擊的資料列變成目前的資料列,並將點擊的儲存格變成目前的儲存格。
按一下目前的儲存格 將目前的儲存格置於編輯模式下。
拖曳資料行標頭儲存格 如果 DataGrid.CanUserReorderColumns 屬性是 trueDataGridColumn.CanUserReorder 屬性是 true,則會移動資料行,使其可以放置於新位置。
拖曳資料行標頭分隔符號 如果 DataGrid.CanUserResizeColumns 屬性是 true,且目前資料行的 DataGridColumn.CanUserResize 屬性是 true,則會調整資料行的大小。
按兩下資料行標頭分隔符號 如果 DataGrid.CanUserResizeColumns 屬性是 true,且目前資料行的 DataGridColumn.CanUserResize 屬性是 true,則會使用 Auto 調整大小模式自動調整資料行的大小。
按一下資料行標頭儲存格 如果 DataGrid.CanUserSortColumns 屬性是 true,且目前資料行的 DataGridColumn.CanUserSort 屬性是 true,則會排序資料行。

按一下已排序資料列的標頭,將會反轉該資料行的排序方向。

按一下多個資料行標頭時按下 SHIFT 鍵,會依按下順序依多個資料行排序。
CTRL+按一下資料列 如果 SelectionMode 設定為 Extended,則會修改非連續多重資料列選取範圍。

如果已經選取資料列,則取消選取該資料列。
SHIFT+按一下資料列 如果 SelectionMode 設定為 Extended,則會修改連續多重資料列選取範圍。
按一下資料列群組標頭 展開或摺疊群組。
按一下 DataGrid 左上角的 [全選] 按鈕 如果 SelectionMode 設定為 Extended,請選取 DataGrid 中的所有資料列。

滑鼠選取

如果 SelectionMode 屬性設定為 Extended,在按下 CTRL 或 SHIFT 時按一下資料列將會修改多重資料列選取範圍。

當您按下 CTRL 並按一下資料列時,資料列將會變更其選取狀態,而所有其他資料列都會保留其目前的選取狀態。 執行此動作以選取非相鄰資料列。

當您按下 SHIFT 並按一下資料列時,選取範圍會包含目前資料列與錨點資料列之間的所有資料列,位於按一下前目前資料列的位置。 按下 SHIFT 時,後續按一下會變更目前的資料列,但不會變更錨點資料列。 執行此動作以選取相鄰資料列的範圍。

CTRL+SHIFT 可以結合以選取相鄰資料列的非相鄰範圍。 若要執行這項操作,請使用 SHIFT+按一下來選取第一個範圍,如先前所述。 選取第一個資料列範圍之後,請使用 CTRL+按一下來選取下一個範圍中的第一個資料列,然後在按下 CTRL+SHIFT 時按下一個範圍中的最後一個資料列。

另請參閱