Since the user interface change from MDI (Multiple Document Interface) to SDI (Single Document Interface) for version 10.0 of GP (see Version 10.0 and its individual windows), we now have a situation that can occur when a window can open outside of the visible area of your windows desktop.
Window locations from version 10.0 onwards are measured relative to the main application window. Most windows in Dynamics GP don't specifically remember their positions and normally open a little down and to the right of the main application window's top left corner. However, other windows can be specifically programmed to remember their size and position.
For example: The Note window remember its size and position, and so do Advanced Security and Field Level Security windows. Also the Support Debugging Tool remembers its windows' positions and size.
It is also possible to add Visual Basic for Applications (VBA) code to windows to allow them to store their location and size. See the posts VBA - Screen Size and Position Example and Why can't I maximize my window? Also see Support Debugging Tool examples in links below.
Given the following scenario, it is possible to open the Note window beyond the edges of the desktop:
- Launch Microsoft Dynamics GP.
- If the main application window is maximized, restore it so that it can be moved around.
- Move the main application window to the right hand half of the screen.
- Open the Customer Maintenance window (Cards >> Sales >> Customer).
- Click on the window note button at the bottom right of the window.
- Move the Note window so that it is beyond the left hand edge of the main application window. Leave a couple of centimetres gap (1 inch for those of you can't understand real units).
- Close the Note window.
- Move the main application window to the left hand half of the screen, near to the left hand edge.
- Fine the Customer Maintenance window and click on the Window Note again.
- The Note window will open again in a position that is relative to the main application window.... and beyond the left hand edge of the screen.
So how can I fix this?
Below are some GP specific solutions, however, they will only make a difference next time the window is opened and will not help with the Note window that is now hidden.
- Move the main application window back to its original position, so when the window opens relative to the main application window it will be visible.
- Many of the windows store their position and size data in the Dex.ini file as settings. Deleting or editing the Dex.ini file can be used to restore the window next time it opens.
The NoteWindow setting can be used for the Notes windows, settings starting with WDC_Win can be used for Advanced Security and Field Level Security, and the settings starting with MBS_Debug_Win can be used for the Support Debugging Tool.
Note: The Support Debugging Tool also has a reset window position button in the Dex.ini Settings window. You can also use the Support Debugging Tool's Dex.ini Configuration window to automatically remove these Dex.ini settings on login if you want to stop the windows remembering their positions.
- If the VBA method has been used, you could remove or edit the settings in the SY90000 (SY_User_Object_Store) table.
Below is my preferred solution as it works with all applications and is not GP specific. This technique also works when the problem is caused because a normally dual screen computer is now running with a single screen and the application is opening on the now disconnected screen.
- Open the window's context menu. This is the menu that is opened if you click in the top left corner of the window. There are two methods you can use; Make sure the window has focus, either by asking it to open again or selecting it from the Window's Start bar. Then press Alt-Space; or find the window on the Window's Start bar and Shift-Right Click on it.
- Once the menu is open, if you can't see it press M, if you can see it, you can press M or click Move.
- Then press any arrow key (up arrow will do), this starts to move the window, BUT.... more importantly it links the window to the mouse cursor.
- Move the mouse pointer back to the desktop and the window will be visible again. Problem solved.
Note: If this fails because the window is maximized, perform step 1 again and press R for Restore, then start from step 1 again.
For some related window size and position posts, see the following articles:
- VBA - Screen Size and Position Example
- Adding Window Size and Position Memory using the Support Debugging Tool
- Update: Adding Window Size and Position Memory using the Support Debugging Tool
- Why can't I maximize my window?
- Where has my Microsoft Dynamics GP window gone?
The Alt-Space, M, Up Arrow & move mouse combination has saved my sanity many times. Hope it saves yours.... unless it is already too late!
24-Aug-2010: Another great tip for Windows 7. Use Windows Key + Shift + Left or Right arrow to shift a window between multiple displays. This can be used to move a window back to the main monitor when the secondary monitor is not active. Just select the window from the Start bar and press the keys to move the window.
09-Oct-2013: Added links to related articles.