DataGrid 控制項中的預設鍵盤和滑鼠行為
本主題描述使用者如何使用鍵盤和滑鼠與 DataGrid 控制項互動。
與 DataGrid 的一般互動包括流覽、選取和編輯。 選取行為會受到 SelectionMode 和 SelectionUnit 屬性的影響。 造成本主題所述行為的預設值為 DataGridSelectionMode.Extended 和 DataGridSelectionUnit.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。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應