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

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

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

預設鍵盤行為

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

按鍵或按鍵組合 描述
DOWN ARROW 將焦點移至目前儲存格正下方的儲存格。 如果焦點位於最後一個資料列中,按下向下箭號不會執行任何動作。
向上鍵 將焦點移至目前儲存格正上方的儲存格。 如果焦點位於第一個資料列中,按向上鍵則不會執行任何動作。
向左鍵 將焦點移至資料列中的上一個儲存格。 如果焦點位於資料列的第一個儲存格中,按 LEFT 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 鍵時流覽鍵盤時,會修改多列選取範圍。 導覽開始之前,控制項會將目前資料列標示為錨點資料列。 當您按下 SHIFT 時流覽時,選取範圍會包含錨點資料列與目前資料列之間的所有資料列。

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

  • SHIFT+向下鍵

  • SHIFT+向上鍵

  • SHIFT+PAGE DOWN

  • SHIFT+PAGE UP

  • CTRL+SHIFT+向下鍵

  • CTRL+SHIFT+向上鍵

  • CTRL+SHIFT+HOME

  • CTRL+SHIFT+END

預設滑鼠行為

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

滑鼠動作 描述
按一下未選取的資料列 將按一下的資料列變成目前的資料列,並將按一下的儲存格變成目前的儲存格。
按一下目前的儲存格 將目前的儲存格放入編輯模式。
拖曳資料行行首儲存格 DataGrid.CanUserReorderColumns如果 屬性是 true ,而且 DataGridColumn.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+click 選取第一個範圍,如先前所述。 選取第一個資料列範圍之後,請使用 CTRL+按一下以選取下一個範圍中的第一個資料列,然後按一下下一個範圍中的最後一個資料列,然後按 CTRL+SHIFT。

另請參閱