Multi-Monitor Support (VS 2010 and .NET 4 Series)

This is the fourth in a series of blog posts I’m doing on the upcoming VS 2010 and .NET 4 release.

Today’s post covers one of the general IDE improvements that I know a lot of people are already eagerly looking forward to with VS 2010 – multiple-monitor support.

Using Multiple Monitors

VS 2008 hosts all documents/files/designers within a single top-level window – which unfortunately means that you can’t partition the IDE across multiple monitors.

VS 2010 addresses this by now allowing editors, designers and tool-windows to be moved outside the top-level window and positioned anywhere you want, and on any monitor on your system.  This allows you to significantly improve your use of screen real-estate, and optimize your overall development workflow.

Taking advantage of the multi-monitor feature is really easy to-do.  Simply click on a document tab or tool-window and drag it to either a new location within the top-level IDE window – or outside of the IDE to any location on any monitor you want:

step2

You can later drag the document/window back into the main window if you want to re-dock it (or right click and choose the re-dock option). 

Visual Studio remembers the last screen position of documents when saved – which means that you can close projects and re-open them and have the layout automatically startup where you last saved it.

Some Multi-Monitor Scenarios

Below are some screen-shots of a few of the scenarios multi-monitor enables (obviously there are many more I’m not covering).  Pretend each window in the screenshots below is on a different monitor to get the full idea…

Code source file support:

Demonstrates how code files can be split up across multiple monitors.  Below I’ve kept a .aspx file in the main IDE window and then moved a code-behind file and a separate class file to a separate screen:

step3

Tool window support:

Demonstrates how any tool window/pane within VS10 can be split across multiple monitors.  Below I’ve moved the test runner tool windows to a separate screen:

step5

Designer support:

Demonstrates how a designer within VS can be split across multiple monitors.  Below I’ve moved the WPF/Silverlight WYSWIYG designer and the property grid to a separate screen (the code behind file is still in the main window). Note how the VS10 property grid now supports inline color editors, databinding, styles, brushes, and a whole bunch more for WPF and Silverlight applications (I’ll cover this in later blog posts):

step6

Summary

If you work on a system that has multiple monitors connected to it, I think you are going to find the new multi-monitor support within VS10 a big productivity boost.

If you don’t already have multiple monitors connected to your computer, this might be a good excuse to get some… :-)

Hope this helps,

Scott

P.S. In addition to blogging, I have been using Twitter more recently to-do quick posts and share links.  You can follow me on Twitter at: http://www.twitter.com/scottgu (@scottgu is my twitter name)

87 Comments

  • This is an excellent feature Scott.

  • Fantastic!! Just like Blend 3.0! :)

  • Looks great Scott! Will it support profiles for switching between single and multi-monitor setups? For instance, at the office I dock my laptop and have dual monitors but when I work at home or on the road, I only have the single laptop screen. How is the last position handled if a second monitor doesn't exist next time it's launched?

  • @John,

    >>>>>>>> Looks great Scott! Will it support profiles for switching between single and multi-monitor setups? For instance, at the office I dock my laptop and have dual monitors but when I work at home or on the road, I only have the single laptop screen. How is the last position handled if a second monitor doesn't exist next time it's launched?

    I believe the document screen location is not stored in the project or solution, but rather in the per user VS store on the local machine. This means you can maintain separate window locations on different machines just fine. This also means you won't have problems when working on projects between multiple people under source control.

    Hope this helps,

    Scott

  • You CAN do this in VS2008. I've got VS2008 on two monitors right now, and the settings are remembered between sessions.

    Start by floating the Solution Explorer, drag it to the other monitor and drag it to fill the screen. Then drag other windows and position them inside this floating window as normal.

  • @Andy,

    >>>>>>> You CAN do this in VS2008. I've got VS2008 on two monitors right now, and the settings are remembered between sessions.
    Start by floating the Solution Explorer, drag it to the other monitor and drag it to fill the screen. Then drag other windows and position them inside this floating window as normal.

    I believe you can do this for tool windows - but not for code files or designers, which means all the editing scenarios above wouldn't work in VS08.

    Thanks,

    Scott

  • This is more than I'd dared hope for. Great news!

  • @Richard B,

    >>>>>>> I downloaded the beta version that is currently out there... I was wondering if the UI will receive a speed boost before the product goes to RTM. I'm ticked to death about the multi-monitor support, but if the UI is as sluggish as it is on my Precision m4300 mobile workstation, I'm a bit skeptical if it's worth the move.

    Definitely don't judge the performance of the product based on Beta1 - that was an early beta and had not been performance tuned yet. Beta2 is significantly, significantly, significantly faster.

    Hope this helps,

    Scott

  • Andy, you can do it with the tool palletes(not overly usefull imo) but I don't believe you can do it with code / designers.

  • Is it possible for project and solution files to remember window settings? Like saving which files were open in VS08.

    Thank you

  • I'm not impatient to have VS2010, VS2008 is a very good product, but it's a nice feature. You can make an effort to add this in VS2008 SP2 ;-)

  • I love your great post about VS2010.

  • Awesome feature, I've been waiting for this for a while!

  • Wow, excellent feature! Exactly what I needed! :-) Thank you, thank you.

  • Excellent feature! when will vs2010 beta2 be released?

  • This is what I needed!

  • Great posts about VS2010.

    In vs2008 the split-button is limited to splitting the view of an apsx-page horizontally.
    I was wondering if the design-view and source-view of 1 page can also be split into multiple windows in vs2010.

  • Awesome! In web app dev mode, I use one monitor for VS and my web browsers on the other. With the arrival of this feature, it is time to ask my manager for a third monitor :-)

  • Hi John,

    You can get part-way there with Visual Studio 2008 by exporting settings files for each setup that you like (one monitor, two monitors etc). You can pick just the Window Layout settings to export and then create different shortcuts to Visual Studio that imports settings for each monitor setup.

    It's a bit quirky, but possible...

    The url to my blog linked on my name above has a step-by-step walkthrough.

    Kirk

  • Wow!! Its really an amazing feature.Thanks a lot for sharing it with us.Really a nice post.

  • Thanks, me too. I am eagerly looking forward to with VS 2010 :)

  • hey scott,
    i think you miss-understood john's questions:

    >>>>>>>> Looks great Scott! Will it support profiles for switching between single and multi-monitor setups? For instance, at the office I dock my laptop and have dual monitors but when I work at home or on the road, I only have the single laptop screen. How is the last position handled if a second monitor doesn't exist next time it's launched?

    >>>I believe the document screen location is not stored in the project or solution, but rather in the per user VS store on the local machine. This means you can maintain separate window locations on different machines just fine. This also means you won't have problems when working on projects between multiple people under source control.

    I have the same problem (as soon as i get my notebook) with which i can work:
    in the office (via docking station) with 2 monitors connected to the docking station
    and at home (homeoffice) with only the notebooks screen (no docking station, only single screen).

    so it is the same machine + the same user: just different "screens configurations/combination" "connected" at a different point in time to the same machine.

    is there a way to switch the layout profile VS2010 uses?

    i.e. via command line parameter? for example:
    devenv.exe -layoutconfig=UsingMyDockingStationTwoMonitors (for in the office)

    and

    devenv.exe -layoutconfig=IamAtHomeOnlySingleMonitor (for home office use)
    thanks, toebens

  • looks great - but have you solved the jumping toolbar issues tool. When the focus changes from window to window, the toolbar updates to reflect context. But the change often causes jumps and resizes in the windows. Its amazing just how much this jars the brain mentally!

  • I'll quote Unreal Tournament: "Wicked sick!" :)

  • Hi,

    Can we have tow separate windows and dock them using the new feature of Windows Seven ?

    Thank

  • > VS 2008 hosts all documents/files/designers within a single top-
    > level window – which unfortunately means that you can’t partition
    > the IDE across multiple monitors.

    Visual Studio up to Visual Studio 2002 Beta1 had the option to run in SDI as opposed to MDI mode if you started devenv with the /sdi switch. It was removed in later betas and despite many complaints at the time, customers have had to live with this for 8 years.

    So despite my joy at it coming back, I'm don't really feel like being an MS fanboy.

  • Any ETA for Beta2 ?

  • I wish my remote desktop ("mstsc /span") would work better with multiple monitors...

  • Great series Scott. One major control missing from WPF is a similar docking control. There are some good third-party dock manager controls, but should be a must for WPF. Once VS10 and .NET 4.0 are released could you get the WPF Toolkit team to add this to the list? Thanks again.

  • when the final version of VS 2010 is comming out.

  • Cool. Looking like a must-have upgrade. I'm hoping edit and continue will be fixed on 64 bit - will that be the case? I need a new PC, and that omission in VS 2008 is holding me back from 64 bit Windows.

  • OMG Finally!!! :) This is probably the feature that will boost the most out of each programmer.
    Nice!

  • Is it possible to regroup external code source view and switch between them through tabs like it is possible in the main window?

    For example in scenario "Code source file support" could you drag and drop DefaultShip.cs on top of DefaultAspx.cs? If so would it creates tabs at the top of the new group window that would let you switch between the files and also would Ctrl-Tab work for that group?

  • My big problem so far with VS "support" of multiple monitors is that they all come to the front when you click one.... So if I have an external app (SQL studio, GIMP, etc.) open on one monitor on top of some IDE windows (for reference), it gets hidden immediately when I click on one of the IDE windows on the other monitor. Will this be fixed?

  • The effort on making multimonitor support better is appreciated. With that said, I second the comment about needing to have multiple profiles for saving layouts in order for this to be truly useful to laptop users. Lots of developers have different monitor configurations depending on whether they're at work, at home or on the road. VS needs to be able to 1) automatically recognize the monitor layout and adjust, and/or 2) allow us to save the layout into different profiles that we can choose from. Otherwise, whatever great layout we have at work will get lost the first time we boot up without multiple monitors, and after a couple times of moving windows all over again, we'll give up.

    John

  • So can we drag floating windows to other monitors and then maximize them or do we have to tediously size them to be the size of that monitor?

    Also, has there been any thought into integrating the saved / scriptable window layout functionality that VSWindowManager provides? It would be nice to not have to worry about VSWindowManager working (or not) in vs.net 2010

    For me, I LOVE having the code definition window up on one of my monitors, might be a good example to show. Besides, alot of people aren't even aware of the code definition window.

  • this is cool -- but what about fullscreen mode? it'd be cool if fullscreen mode minimized the UI elements and put splitters between the various windows.

  • Can you move out 2 document windows and group them together into tabs ?

  • Its. About. Time.

    I've been begging for this feature for 5 years now. Now to beg my boss to let us upgrade when it comes out.

  • I can't wait to get multiple monitor support as that will be a nice productivity gain. Any idea on when the next Visual Studio Beta will be released?

  • Scott,

    Is there something that we can use to manage layouts - like in Photoshop? This would be helpful if you wanted to load up a 'Testing Layout' that loads the unit testing windows, etc. Or load up an 'extreme programming' layout...

    Thanks!

  • Awesome! Have been using 2 monitors for years. An excuse to add one more :)

  • Absolutely agree with John Sheehan and others - Multimonitor support is awesome, but we really needs for multiple profiles. This because of many of developers have laptops and some kind on home/office docking station w/ external monitors.

    In this case WS should easilly adapt to current monitor configuration - i.e. remember multimonitor layout even if there was a switch to single monitor configuration.

  • Wow.. I love this feature and I know that many of us (developers) will appreciate it since we tend to have dual monitors. Will there be SP2 for VS2008? If there is, it would be nice to include this feature.

  • Do the floated windows still jump to the top of the screen when I focus on the main window? This is annoying as it causes applications I have on the other screen (documentation, NUnit, etc) to get covered up whenever tab to visual studio.

    VS 2008 really doesn't share multiple monitors well with other applications, allowing me to float more windows doesn't help. I hope 2010 improved this.

  • How well does it handle radical screen resizes or monitors coming & going? ... such as the difference between being logged in locally (multi mon) and being RDPed in (single mon)?

    I ask because I spend half of my day locally on PC A and RDPed into B... while the other half is being locally on B but RDPed into A... and have pretty much given up on custom window layouts in VS because every time I switch I have to re-adjust everything.

  • Scott,

    When I close the code window and reopen it againe it return back to dock.

    Is there any way to save the previous position and size.

  • >>>I believe the document screen location is not stored in the project or solution, but rather in the per user VS store on the local machine. This means you can maintain separate window locations on different machines just fine.
    <<<

    Scott:
    this is a cool feature, but I would like to add my support for multiple profiles.

    Sometimes, I use RemoteDesktop to connect to my work machine from home. I have a single monitor at home, and duals at work. This causes real headaches with certain applications that try to remember which monitor to use(Visio, for example insists on displaying dialogs in the monitor that I don't have).

  • Has the issue with the WPF designer/XAML window been addressed? In current builds, they're glued together so can't be dragged out into separate tool windows and displayed on separate monitors.

  • Am I misreading here? I have a new widescreen iiyama monitor - don't really like it as it wastes a lot of screen estate but it's all one can seem to get hold of these days (it's and LCD 1920x1080 unlike my old CRT which was 1280x960). Maybe I just need to play around with panes a bit more and that will cover all scenarios but can I split and snap VS2010 panes on the SAME monitor outwith the IDE and the whole thing hold together?

  • Being able to move IDE windows around is a nice feature. Embarcadero's Delphi has been doing this stuff for a while now.

  • Very cool. Something that would be nice, and I haven't noticed you mentioning it, is if the windows that are dragged out would snap to each other, kind of being magnetized. This would help a lot when arranging them.

  • I've been screaming for this feature ever since I switched from java using JBulider! My work around for the last 5 years was to use full horizontal span then split the windows vertically and carefully align them so each tab takes one screen.

  • Needs to remember multiple layouts. So when I have to RDP into my session at the office from home (w/ different sized multi-monitor setup) I can quickly switch to a window layout optimized for that configuration.
    If it won't store layouts it will be useless to me since at any given time I may be at home, or on my laptop or at the office. I will have to stick to single screen version just to keep from losing windows in different views.

    -Al

  • Nice feature! when will vs10 beta2 be released?

  • wow scott it looks great for now with beta1, looking forward for more improvements in the performance related stuff in the beta2 and RTM.

  • It's really nice..........

  • This is an excellent feature in VSS. Great Work Microsoft team.

  • Great feature. I have not downloaded VS2010 yet but would it be possible to have a mode that minimized the IDE to the menus and toolbars and made all the windows floating from startup?

  • hi Scott,
    As always a refreshing article with loads of inputs. keep up the good work.

  • @Amr,

    >>>>>> Is it possible for project and solution files to remember window settings? Like saving which files were open in VS08.

    Yes - this is fully supported.

    Thanks,

    Scott

  • @Aernout,

    >>>>>>> I was wondering if the design-view and source-view of 1 page can also be split into multiple windows in vs2010.

    Unfortunately that isn't supported yet. But you can split the design-view and code-behind files across separate monitors.

    Hope this helps,

    Scott

  • @toebens,

    >>>>>>> I have the same problem (as soon as i get my notebook) with which i can work:
    >>>>>>> in the office (via docking station) with 2 monitors connected to the docking station
    >>>>>>> and at home (homeoffice) with only the notebooks screen (no docking station, only single screen).

    VS will detect if your second monitor is enabled or not, and move documnts that were previously on the second monitor to instead be on your primary monitor if it isn't available.

    Hope this helps,

    Scott

  • @Vincent,

    >>>>>>> Can we have tow separate windows and dock them using the new feature of Windows Seven ?

    Yes - when you pull a tabbed document out of the main Windows in VS you can dock it to the Win7 screen using the standard Win7 gestures.

    Hope this helps,

    Scott

  • @Chris W,

    >>>>>>> I'm hoping edit and continue will be fixed on 64 bit - will that be the case? I need a new PC, and that omission in VS 2008 is holding me back from 64 bit Windows

    I don't believe we support edit and continue for 64-bit processes. but what you should be able to-do is configure the project you are working with to run in 32-bit mode when in debug mode. This will enable edit and continue support to work just fine.

    Hope this helps,

    Scott

  • @Daniel,

    >>>>>>>> Is it possible to regroup external code source view and switch between them through tabs like it is possible in the main window?

    Unfortunately that isn't supported just yet - but is something we are planning to enable for the future (post VS10).

    Hope this helps,

    Scott

  • @Dave,

    >>>>>>> My big problem so far with VS "support" of multiple monitors is that they all come to the front when you click one.... So if I have an external app (SQL studio, GIMP, etc.) open on one monitor on top of some IDE windows (for reference), it gets hidden immediately when I click on one of the IDE windows on the other monitor. Will this be fixed?

    When VS has focus it will bring the windows to the foreground. Although I understand the scenarios where you might want to have only some of the documents come to the foreground, I'm not really sure how you'd implement this with a user model that would make total sense (since I think the common scenario is actually to have them all come to the foreground - and it would be a pain to have to pull each one manually).

    Hope this helps,

    Scott

  • @Allen,

    >>>>>> So can we drag floating windows to other monitors and then maximize them or do we have to tediously size them to be the size of that monitor?

    Yep - there is maximize support. You can also double click the title window to do this automatically.

    >>>>>> Also, has there been any thought into integrating the saved / scriptable window layout functionality that VSWindowManager provides? It would be nice to not have to worry about VSWindowManager working (or not) in vs.net 2010

    To be honest I'm not really sure what this feature is - so can't say for sure one way or another how it works in VS10. Sorry!

    Scott

  • @Rolek,

    >>>>>> Can you move out 2 document windows and group them together into tabs ?

    Not yet. This is a feature we are looking to enable in the future though.

    Hope this helps,

    Scott

  • @vic,

    >>>>>> Is there something that we can use to manage layouts - like in Photoshop? This would be helpful if you wanted to load up a 'Testing Layout' that loads the unit testing windows, etc. Or load up an 'extreme programming' layout...

    This is definitely something we are looking to enable in the future. It isn't supported yet though.

    Thanks,

    Scott

  • When VS has focus it will bring the windows to the foreground. Although I understand the scenarios where you might want to have only some of the documents come to the foreground, I'm not really sure how you'd implement this with a user model that would make total sense (since I think the common scenario is actually to have them all come to the foreground - and it would be a pain to have to pull each one manually).
    ---

    This is the biggest problem with multimonitor support in VS2008, I really urge you to try and find some way around this, maybe for people with Windows 7 you could have the first VS thumbnail as a 'bring all VS windows in this instance to the front' option, while all the other thumbnails only bring each individual window to focus?

    If you arn't planning to implement a solution for this could you at least add a tick box in the options somewhere along the lines of "Only give focus to the window that is clicked"? If not a tick box then at least a registry key I can manually add in that can prevent focus on other windows from being lost!

  • Would be great if this Docking layout panel system for WPF would be released open source on Codeplex or something. Have you guys considered it?

  • Hi Scott, this feature will be very very useful.

    One question: currently in VS 2005 and VS 2008 if you want to navigate through open windows you can use CTRL + TAB.
    When using two VS 2010 windows in two different monitors, how can you navigate through them? I would expect to use ALT + TAB instead of CTRL + TAB. Do you know how it works?

    Thanks for your help

  • i think some windows in vs2008 already support multi-monitor, i once put the test window in my second monitor

  • That is indeed GOOOOD NEWS. Still I understood that you cannot extract from the main window the code files in a tabbed manner, they would still remain in the main IDE body.

  • DEJA VU!!! This has always been around, I remember Visual Studio 6 spread over two monitors, not MDI. Somewhere along the line (2002, 2005?) this feature was removed and the old-style (reminding me of Windows 3.1 times) with MDI windows came back.

    In current Visual Studio 2008, everything is dockable and can be spread over multiple monitors. I'm glad that the main window is dockable too now.

    What about a way to manage several settings into a View or Perspective (Eclipse)? VS has become complex enough to warrant easy switching between views, can't be too hard to implement a Eclipse Perspective style feature, can it?

    -- Abel --

  • when pair programming on several teams I've been on, usually once widescreen monitor is vertical (for code editing) and the other is horizontal. do the default dual-screen layouts take this into account?

  • Awesome...

    Thanks a lot dear....

    Sometime split does not fulfill our requirement. Can we see the symaltaneous effect in code if you we change anything in .aspx page. Like we add the new contol then it will be available in code.

  • VS will detect if your second monitor is enabled or not, and move documnts that were previously on the second monitor to instead be on your primary monitor if it isn't available.

    -------------

    And then when you re-dock your laptop to the multi-monitor setup? Is it going to be smart enough to put the windows back where they originally were, or will we need to manually rearrange them? That gets extremely tedious for those of us that switch from a offsite-laptop to docked-laptop working environment on a regular basis

  • Hey I use the sys internals Desktops program to get multiple desktops on one monitor. Will VS2010 allow me to send a code windows to another desktop?

  • Re: Scott When VS has focus it will bring the windows to the foreground. Although I understand the scenarios where you might want to have only some of the documents come to the foreground, I'm not really sure how you'd implement this with a user model that would make total sense (since I think the common scenario is actually to have them all come to the foreground - and it would be a pain to have to pull each one manually).

    ----------------

    I'd imagine this working in a similar manner to the way that mIRC manages to allow users to designate channels to be in their own desktop window. It's really just a simple on/off switch to treat a particular pane as its own desktop window. I can click a 'Desktop Window' setting grouped right in with Restore/Minimize/Maximize/etc and all of a sudden #XNA has its own window in the taskbar that flashes to notify me of activity in that specific channel.

    I'm not sure how I'd accomplish this with WPF but it would be perfect if there was at least an extensibility point in VS2010 to work this stuff in prior to VS201[n+1]

  • It would be cool if in VS2010 one could have the "methods separators" for c#, like the ones for VB, an horizontal line between every method. It helps me not to get dizzy with a lot of code.

  • >>>>>> >>>>>> Also, has there been any thought into integrating the saved / scriptable window layout functionality that VSWindowManager provides? It would be nice to not have to worry about VSWindowManager working (or not) in vs.net 2010

    >>>>>> To be honest I'm not really sure what this feature is - so can't say for sure one way or another how it works in VS10. Sorry! Scott


    First off, EXCELLENT news about the maximize and windows 7 gestures! As for VSWindowManager, you can arrange the windows to a particular layout that you like and save that layout to a specific name (window > save window layout as > name). Also, you can have VSWindowManager apply specific layouts when you start debug mode or when you enter design mode. This is pretty useful if you have complex layouts that you like to switch between (working on mvc.net vs working on winforms). Even more, if you remote terminal into your development box from another box, and you have vs.net open, vs.net will collapse your windows layout onto 1 monitor and you'll be lucky to get it back the way it was. Having the layout saved under a specific name, you can easily re-apply the layout once you get back to your development box. It is a bit much to ask for, no doubt, but it would be extremely beneficial. Thanks for the previous reply!

  • Definitely cool. Even with everything else coming out, this might be the feature that makes the most difference in my programming.

  • So the Multi-Mon support:
    -Does not let you have multiple tabbed code windows on a secondary monitor.
    -Does not let you split the design and source of an aspx page on separate monitors.
    -Does not have a window layout profile manager for remote desktop scenarios.

    Really the only new thing it does is let you have a single code document at a time on a separate monitor. Sorry, that is pathetic.

  • One thing that bugs me with VS2008 stretched across multiple monitors: if you lock the screen (Ctrl Alt Delete), the VS 2008 shrinks to a single monitor. Can this be fixed?

    Also, any limit to the number of monitors?

  • For Multi-monitor i installed the new Beta 2. Fine. But why isnt it possible to extend the main window on both monitors.

    And the WPF design is miles away from the Great Windows 7. I still like the Fish. :-)

Comments have been disabled for this content.