By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
429,077 Members | 2,160 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 429,077 IT Pros & Developers. It's quick & easy.

C# WinApp : Open Forms in Multiple screen

Shashi Sadasivan
Expert 100+
P: 1,435
Hi All,
i Have an application functionaluty which has 4 forms which are needed to interact by the user by dragging data from these forms to one another
the main form is located in the MDI Parent and the rest are on their respective screen (3 other secondry screens)

At the moment i am testing using 2 screens but i get a very similar behavious when i run it on a 4 screened system.

For the 2 screen system:
form1 opens in primary screen (ie the MDI Parent)
form2 opens in 2nd screen
form3 opens in 1st screen (primary)
form 4opens in 2nd screen

for the 4 screened system:
form1 opens in primary screen (ie the MDI Parent)
form2 opens in 2nd screen
form3 opens in 1st screen (primary)
form 4opens in 2nd screen

When this feature is requested by the user, form1 opens
form1 has the following code which opens form2, form3, and form4 in their respective screens

following is the code in method called by form_load within form1

Expand|Select|Wrap|Line Numbers
  1. private void openForms()
  2. {
  3.    Form2 form2 = new Form2();
  4.    Form3 form3 = new Form3();
  5.    Form4 form4 = new Form4();
  6.  
  7.    Screen[] screens = Screens.AllScreens;
  8.    if(screens.Length == 2)
  9.    {
  10.       List<Screen> lstScreen = new List<Screen>();
  11.       foreach(Screen screen in Screen.AllScreens)
  12.       {
  13.          if(screen.Primary == false)
  14.             lstScree.Add(screen);
  15.       }
  16.       form2.Location = lstScreen[0].WorkingArea.Location;
  17.       form3.Location = lstScreen[0].WorkingArea.Location;
  18.       form4.Location = lstScreen[0].WorkingArea.Location;
  19.    }
  20.    else if(screens.Length == 4)
  21.    {
  22.       List<Screen> lstScreen = new List<Screen>();
  23.       foreach(Screen screen in Screen.AllScreens)
  24.       {
  25.          if(screen.Primary == false)
  26.             lstScree.Add(screen);
  27.       }
  28.       form2.Location = lstScreen[0].WorkingArea.Location;
  29.       form3.Location = lstScreen[1].WorkingArea.Location;
  30.       form4.Location = lstScreen[2].WorkingArea.Location;
  31.    }
  32. }
While debugging it for the 2 screen system, i found that the Location of all the 3 forms is being set to -1280,0 even after the show method is executed the positions are shown to -1280,0

so cant figure out why form3 appears on the primary screen, but form4 appears back onto the 2nd screen.

Any help is appreciated, Thankyou

-Shashi
Jan 10 '08 #1
Share this question for a faster answer!
Share on Google+

Post your reply

Sign in to post your reply or Sign up for a free account.