Least discoverable feature: Workflow designer keyboard shortcuts

The Workflow designer, like any good Visual Studio component, has many keyboard shortcuts. We are documenting these shortcuts in the MSDN documentation (I’ll post when the docs are available*), but I thought I’d list them here so that they’re available for you to use now.

Shortcut

Purpose

Ctrl+E, A

Shows or hides the Argument Designer.

Ctrl+E, C

Collapses the selected activity in place.

Ctrl+E, E

Expands the selected activity in place.

Ctrl+E, F

Connects the selected activities in a flowchart.

Ctrl+E, I

Shows or hides the Imports Designer.

Ctrl+E, M

Moves the keyboard focus to the next item in the tab order.

Ctrl+E, N

Creates a new variable in the scope of the selected activity (or the closest).

Ctrl+E, O

Shows or hides the Overview map.

Ctrl+E, P

Navigates to the parent of the selected activity. This goes up one level in breadcrumb navigation, and changes the root activity on the designer surface.

Ctrl+E, S

Adds the item with keyboard focus to the current selection.

Ctrl+E, V

Shows or hides the Variable Designer.

Ctrl+E, X

Expands all activities in the workflow.

Ctrl+Alt+F6

Moves keyboard focus from the current UI area to the next area in a circular fashion. The order is as follows:

Breadcrumb navigation bar

Designer surface

Arguments/Variables/Imports designer if open

Shell

Also, arrow keys can be used in the flowchart to move around selected activities. You can resize a flowchart via keyboard by using the arrow keys to push the activity past the flowchart’s edge.

Now you may ask “Why don’t you just put all these keyboard shortcuts in the context menu to help me remember?” That’s a good idea, but there’s a catch: keyboard shortcuts in Visual Studio can be remapped using the Tools->Options dialog box. Plain old WPF context menus like the ones we use cannot listen for these changes, so we couldn’t add the shortcuts to the context menu. So, if you’re in VS and want to remember which keyboard shortcuts are which, go to the Tools->Options dialog, open the Environment node, click Keyboard, and you’ll be able to navigate to the keyboard shortcuts and see the mappings there. The Workflow.* ones are for projects targeting 3.0/3.5, and the WorkflowDesigner.* ones are targeting .NET 4.0. The keyboard shortcuts can’t be remapped in a rehosted workflow, so we show them in the context menu.

You may also ask “What is this Ctrl+E prefix for anyway?” We just chose it because Ctrl+E is unique in the global context in Visual Studio and we could add key chords in something resembling a mnemonic scheme after the Ctrl+E prefix. Visual Studio has hundreds of bound shortcuts, and Ctrl+W was taken. I like to think of it as “E for Edit Workflow”. Ctrl+Alt+F6 is the standout, but that’s there because the combination of Ctrl+F6/Ctrl+Alt+F6 is a very common key combination for circulating between UI parts (try it in Office and see).

Not covered today, expression editing keyboard shortcuts, I’ll cover that another day.

* [edit 2/8/2010, here is the MSDN documentation for keyboard shortcuts]

* [edit 3/2/2010, here is the promised post about expression editing keyboard shortcuts]