IntPtr[] handles3 = BFS.Window.GetVisibleWindowHandlesByMonitor(3); IntPtr[] handles2 = BFS.Window.GetVisibleWindowHandlesByMonitor(2); // loop through window handles and send each to the next monitor for (int j = 0; j < handles2.Length; j++) BFS.Window.MoveToMonitor(3, handles2 [j]); for (int j = 0; j < handles3.Length; j++) BFS.Window.MoveToMonitor(2, handles3 [j]);