Candidate for most obscure keyboard shortcut: Shift+F8


One of the most obscure keyboard shortcuts has got to be Shift+F8, which is used for listbox discontiguous extended selection. Man, what a mouthful. KB article Q301583 doesn't help matters by listing this keyboard shortcut under "Dialog box keyboard shortcuts" even though it isn't a dialog box keyboard shortcut. It's a listbox keyboard shortcut.

If the listbox supports extended selections (via LBS_EXTENDEDSEL), then you can use the Shift+F8 shortcut to create discontiguous multiple selections from the keyboard. (Via the mouse, you can just Ctrl+Click to create a discontiguous multiple selection.) Type Shift+F8 once to enter extended selection mode, then use the arrow keys to select an item and press Ctrl+Space or Shift+Space to select (or deselect) it. When finished, type Shift+F8 again (or just move focus to some other window).

And yes, this particular keyboard interface is pretty wacked out. A more natural mechanism would be to have Ctrl+Arrow move the focus without changing the selection, then using Ctrl+Space to select (or deselect) the focus item. Thankfully, the list view control went for that approach rather than emulating the crazy Shift+F8 keyboard shortcut.

Comments (28)
  1. nksingh says:

    I can sort of see why Steve Jobs initially wanted to have no keyboard shortcuts on the Mac…  Discoverability for this sort of thing is terrible and no one reads manuals (nor should they have to just to use a computer).  The menu system was not bad for discoverability because you could pay attention to the little underlines and figure out the path to the feature you wanted.  I guess Office’s ribbon is doing a great job of it too because you can see the shortcuts if you hold "ALT".  

    On the other hand, just because they are hard to discover, should the shortcuts not be there?  I guess there’s a tradeoff between ease of use and potential to screw someone up if they accidentally hit a shortcut.  What if you accidentally tap CTRL-Z… if you don’t know what that does, you’ll be very surprised and won’t know how to get your work back (CTRL-Y is so far away and not really sensible).  

  2. Tom says:

    Coming from the UNIX world, I’m a big fan of the keyboard.  All I can say is that I’m glad I’ve never tried to perform a discontiguous extended selection in a listbox using the keyboard, or I might have gone insane trying to figure it out!

  3. I love the fact that Windows offers keyboard shortcuts for everything you can do with the mouse.  Sure you might have to discover and memorize them, but once you know them they sure are nice to have.  I didn’t know about Shift+F8 until now.

  4. Tim Dawson says:

    I recently discovered the Alt-Asterisk keyboard shortcut for the TreeView control, and have actually found it useful since.

    Is there somewhere these are documented? I failed to find anything anywhere in MSDN.

  5. Neil says:

    What (if any) is the difference between Alt+Asterisk and regular Asterisk (expand entire branch)?

    Why isn’t it possible to update the listbox to use Ctrl+Arrow keys? Is there some app that needs to be able to send Shift+F8 keystrokes to listboxes?

  6. Mike Dimmick says:

    nksingh: In some programs, Ctrl+Y is not Redo but Repeat Last Command. That’s subtly different if you’ve changed the selection, since it will actually perform whatever process you undid on the new selection, which isn’t redoing the undo.

    In these applications, Redo is normally Ctrl+Shift+Z. Word seems to have ‘smart’ redo/repeat – Ctrl+Y does different things depending on whether you’ve changed your selection (ugh).

  7. Dewi Morgan says:

    Yay! More punches not being pulled when dissing your own company’s products.

    I was amazed when I first found these blogs that they were allowed at all. Few companies I’ve worked for would permit their programmers (notoriously bad at the whole "social skills" or "PR" side of things) to speak without vetting by the trained PR dudes.

    "Don’t ever speak to the press" is a rule in prettymuch any company, and yet MS is letting programmers speak to the whole world, to publish their own views, and to deilver scathing broadsides at other parts of their company – and to ‘fess up about their own mistakes.

    And wow. It works. We can see that MS is NOT evil, at least those parts covered by the blogs: we can see the major hoops that it jumps through in order not to be evil, bending over backwards to remain compatible with even the most shoddilly written program.

    And we can see it making mistakes and learning from them (as in the Shift-F8). That’s so cool!

  8. Tom says:

    @Grant:  I just use the arrow keys.  Right arrow causes the tree view to expand the current item and left arrow causes it to collapse.  No alt key required!

  9. maverick says:

    Maybe it is just "borrowed" from the EXT mode in Excel? I don’t know who’s first, but it is exactly the behavior I expect.

  10. Neil says:

    Grant, I hadn’t realised that this only works on Windows XP. Also expanding your profile works badly if you have collected lots of network shortcuts in NetHood.

  11. Grant says:

    "What (if any) is the difference between Alt+Asterisk and regular Asterisk (expand entire branch)?"

    Try it. Alt+* expands only the next collapsed level of all branches (unless at least one branch was already previously expanded at that level, then it does the next level), * expands all levels of all branches. In a complex directory hierarchy Alt+* is manageable, * tends to hang Explorer for long periods of time. I’m still waiting for * at C:Documents and Settings{profile} to finish.

  12. steveg says:

    Bet you a dollar somebody still uses it. I’m still stuck on the ol’ Shift+Del Ctrl+Ins, Shift+Ins for Cut Copy Paste. Although my laptop is finally forcing me to learn the new-fangled ones.

    I vaguely disagree with Raymond about the (paraphrased) "thankfully the Treeview used a different keyboard interface". It’d be nice if the list box was updated to use the improved interface as the Tree View (yeah, yeah, I know, impossible due to backwards compatibility with crazy apps that have subclassed (or keyboard hooked or…) and overridden those keystrokes).

  13. Jolyon Smith says:

    Surely you mean: "Shift+Send"

    F8?  This is the 21st Century.  The Century when all applications are email clients.

    They must be, because just about bery new Microsoft Keyboard these days de-emphasises the old F1-F12 labels for our FUNCTION keys, and instead labels them:

    F1 – Help  (Ok, no problem there)

    F2 – Undo  (Eh?  Ok, if you like)

    F3 – Redo  (Not Search then?)

    F4 – New   (So, Alt+F4 = Exit, but F4 = New.  Must have made sense to someone)

    F5 – Open  (I’ll get used to it I guess)

    F6 – Close (Hang on, what was Alt+F4 again?)

    F7 – Reply (Ah yes, very useful in my calculator application)

    F8 – Fwd   (Hang on, another emaily thing?)

    F9 – Send  (Are all applications Outlook suddenly?)

    F10 – Spell  (Not "Menu" then?)

    F11 – Save   (Waaay the hell over here?)

    F12 – Print  (Funny, I always thought the PrtScrn would end up with this function – butwhadoiknow?)

  14. Jase says:

    This is a Word (for Windows) shortcut that I love —

    Ctrl + Shift + 2   now let go of all those keys and then press the space bar!  :-O

    Hey, it might be a handful but it’s easier than using Insert / Symbol to try and find (and insert) the degree sign.

  15. Puckdropper says:

    steveg,

    I’ve been known to hit those key combos a few times for the different operations.  ;-)  I’m more likely to hit CTRL+C, or CTRL+V in a non-Windows app, though.

    I love keyboard shortcuts, especially how Windows tends to be very consistent about them.  I don’t have a mouse on my 386 and just fly around WFW3.11 with the keyboard.

  16. nksingh says:

    Thanks for the ALT-* shortcut!  This would have been really useful to me earlier this summer when I was scrounging around the HKCRCLSID key in the registry.  

    I could really have used some regedit power toys, like a "Back" button to go back to the previous key and a "Go To CLSID" context menu item.  

  17. Dean Harding says:

    Tom: That only expands the node you have selected. Alt-* lets you expand all nodes under your selection, one level at a time.

    So pressing Alt-* once is like right-arrow. But press it AGAIN, and all nodes under the current one will be expanded. Press it a third time, and all nodes under THOSE nodes will be expanded. And so on.

    * on it’s own, expands the current and all sub-nodes all at once.

  18. Norman Diamond says:

    Tuesday, August 08, 2006 10:29 AM by nksingh

    > I can sort of see why Steve Jobs initially

    > wanted to have no keyboard shortcuts on the

    > Mac…

    That would be bad.  It’s still not too rare for a mouse to stop working, either due to an unknown intermittent defect in hardware and/or driver, or due to the cable just being pulled out from the socket.  If you want to save your work before rebooting you have to find keyboard shortcuts.  (Well, maybe not always.  Somewhere I still have some USB keyboards dating from when one of my computers didn’t have PS/2 ports.)

    Tuesday, August 08, 2006 12:14 PM by Grant

    > Alt+* expands only the next collapsed level

    > of all branches (unless at least one branch

    > was already previously expanded at that

    > level, then it does the next level), *

    > expands all levels of all branches.

    I’m running Windows XP Pro SP2 with all available updates including nine today.  In Windows Explorer I tried this with a folder selected in the tree view on the left, and then tried it again with a folder selected in the list view on the right.  * did not open the folder.  Alt+* did not open the folder.  ( did not open the folder.  Alt+( did not open the folder.  All four efforts had zero visible effect.  What should I select before trying one of these variations?

    (I tried ( because its scan code is the same as a US keyboard’s * key.  I.e. I tried Shift+:, Alt+Shift+:, Shift+8, and Alt+Shift+8.)

    (Tuesday, August 08, 2006 12:27 PM by Dewi Morgan

    > Yay!

    Me too.)

  19. Dean Harding says:

    Norman: It’s Alt+[* on the numeric key pad] but I don’t know what that would correspond to on another keyboard layout…

    One thing is, I couldn’t figure out how to get the Alt-* thing to reset itself. If I collapsed the node again and pressed Alt-* again, it still opened up the sub-sub-sub nodes, as if I hadn’t collapsed the node at all.

  20. Dave Harris says:

    Mike Dimmick:

    > Word seems to have ‘smart’ redo/repeat –

    > Ctrl+Y does different things depending on

    > whether you’ve changed your selection (ugh).

    In my 2002 Word, it seems to me that Ctrl+Y does Redo if there is anything to redo (that is, after an Undo) and Repeat otherwise. It doesn’t depend on whether you’ve changed the selection.

    For example, select a 12pt word, change pointsize to 14, Undo so it goes back to 12pt, select a different word, Ctrl+Y. The first word changes its pointsize; the new word is unchanged.

    This seems logical to me. It’s the behaviour I used when I implemented it in my own app.

  21. Dave Harris says:

    A more natural mechanism would be to

    > have Ctrl+Arrow move the focus without

    > changing the selection

    I imagine that was rejected for being too incompatible with other uses. In many word-processing apps (including the edit box in which I am typing this), Ctrl+Right-Arrow is word-right, Ctrl+Left-Arrow is word-left, Ctrl+Up-Arrow is back-paragraph and Ctrl+Down-Arrow is forward-paragraph.

    In some apps, Ctrl+Up-Arrow scrolls down, and Ctrl+Down-Arrow scrolls up.

  22. Norman Diamond says:

    Tuesday, August 08, 2006 10:00 PM by Dean Harding

    > It’s Alt+[* on the numeric key pad]

    Yes, Alt + the numeric keypad’s * key did it.  Thank you.

    > but I don’t know what that would correspond

    > to on another keyboard layout…

    All desktop PC keyboards that I’ve seen based on usual PC conventions have identical layouts of the numeric keypad.  Notebooks don’t of course.

    Tuesday, August 08, 2006 10:22 PM by Jase

    > This is a Word (for Windows) shortcut that I

    > love — Ctrl + Shift + 2   now let go of all

    > those keys and then press the space bar!  :-O

    That didn’t accomplish anything, so I tried Ctrl + @ and released them and pressed the space bar.  That yielded a character that looks identical to a full-width handakuten.  You said it was a degree sign.  I followed it up by inputting a bare handakuten directly from the keyboard.  The two characters are indistinguishable from each other MS Word says they’re both being displayed in font MS Mincho.

  23. Dewi Morgan says:

    For me, this hotkey might even be useful.

    There are a lot of apps out there (autohotkey being the best I’ve found, though I admit I didn’t search far, because ahk did everything I needed) that allow you to easily remap your keys to more interesting and useful things. Not just hotkeys to lauch apps, but much more.

    Most trivially, I have:

    ::a+*::å

    ::angstrom::Ångström

    …and so on.

    Since it lets you make changes either globally or per-app, I’ve also made it remapped the keys for several apps (apps and games that would not let you do this used to be a big bugbear of mine), made the mousewheel work in apps where it did not (Jbuilder), and made trillian collapse to a corner of the screen rather than an edge-and-two-corners (though I’ve yet to manage the same trick with the windows start bar, sadly: anyone know how you can tell the start bar "show thyself" or "hide thyself" programmatically?).

    So now, if I ever need to macro a non-contiguous multiple-select to a hotkey, I can do it without needing to move the mouse cursor! Sweet.

  24. Max says:

    Is there any key for maximizing a window?

  25. ChrisR says:

    @Max: You can use Alt+Space, X to do this.  Alt+Space brings up the system menu for the window, and X is the shortcut for maximize.

  26. Myria says:

    Something I hate about Windows XP is that "Fast User Switching" disables the Winlogon dialog box you got when you hit control-alt-delete.  (I’d gotten used to control-alt-delete then space to lock the desktop since until recently I didn’t have a Windows key.)  Now it brings up Task Manager instead.  This also drove me crazy because what to hit for Task Manager seemed to differ depending on whether Fast User Switch was enabled.

    It turns out that there is a little-known shortcut specifically for Task Manager: control-shift-escape.  It always brings up Task Manager.

    Windows needs a shortcut key for "force-terminate current process", like OS X’s apple-option-Q or whatever it is.  I am *so tired* of full-screen games hanging while locking the front buffer.  The only way out of that besides a hard reset is to do control-alt-delete, L, and enter to tell Winlogon to log you off.  5 minutes later, after Winlogon has given all the applications a chance to terminate, you’ll return to the logon screen.  Of course, you lose all the other programs you were running…

  27. Nobody says:

    *scurries over to a site with a <SELECT MULTIPLE>*

    Wow! It works! The focus ring (or whatever it’s called) blinks like a cursor — it slices, it dices!

    And it works in IE but not Firefox!  Mention that next time one of your friends challenges you to a browser chest-thump-off!

Comments are closed.