Screen.AllScreens.OrderBy() 를 통해
WorkingArea.X 값을 정렬하면 되긴 한데..
Screen[0] 으로 접근 가능한 순서가 아니게 되니 어떻게 해야 하려나..
원론적으로는
Screen.AllScreen[0].DeviceName 에 접근해서 다 잘라내고 숫자만 빼내 -1을 해주면 될 것 같긴한데..
일단 현재 모니터 순서
Screen.AllScreens 에서는 아래의 순서로 출력된다.
0 - 가장 오른쪽 (1920,0)
1 - 가장 왼쪽 (-1920,0)
2 - 중앙 (0,0)
private void Form1_Load ( object sender, EventArgs e )
{
var parent = new FlowLayoutPanel() { Dock = DockStyle.Fill };
Controls.Add(parent);
//Order by how they are laid out to the user
var screens = Screen.AllScreens.OrderBy(s => s.WorkingArea.X).ToArray();
foreach (var screen in screens)
{
var panel = new Panel() { Width = screen.Bounds.Width / 10, Height = screen.Bounds.Height / 10 };
panel.BackColor = screen.Primary ? Color.Blue : Color.Silver;
panel.Controls.Add(new Label() { Text = screen.DeviceName });
parent.Controls.Add(panel);
};
}
[링크 : https://social.msdn.microsoft.com/Forums/en-US/048586a5-e04b-40d8-a2d6-4c903fbf9b1b/...]
[링크 : https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.screen?view=netcore-3.1]
'Programming > c# & winform' 카테고리의 다른 글
C# .net framework combobox 에 여러 기본값 넣기 (0) | 2020.10.30 |
---|---|
C# WebBrowser 컨트롤 DOM 제어하기 (0) | 2020.10.29 |
C# form 동적 컨트롤 생성 (0) | 2020.10.26 |
c# winform picturebox 끼리는 투명 적용 되지 않음 (0) | 2020.10.23 |
자식에서 부모창의 자원 접근하기 (0) | 2020.10.23 |