zoukankan      html  css  js  c++  java
  • C#多屏时控制窗体显示在哪个显示器上

    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

    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.

  • 相关阅读:
    Activiti服务类-1 DynamicBpmnService服务类
    Activiti工作流学习(一)——Activiti服务类
    怎么才能将文件流或者图片转化为base64,传到前台展示
    idea导入eclipse项目
    使用IDEA开发Activiti工作流
    idea中创建多module的maven工程
    Git的使用--如何将本地项目上传到Github
    Spring Boot 入门搭建
    Json中相同或者重复记录的值相加组成新的Json
    前端基础之jQuery入门 01
  • 原文地址:https://www.cnblogs.com/lizi/p/2361230.html
Copyright © 2011-2022 走看看