[C# 윈폼] C# 다중 모니터 감지 및 사용하기 (Screen)
- C#/Windows Form
- 2020. 8. 6. 00:00
안녕하세요.
오늘은 C# 에서 다중 모니터를 감지하고 사용하는 방법에 대해서 알아 보려고 합니다.
바로, C# 에서 기본으로 제공해주는 Screen 클래스를 이용하면 되는데요.
요새는 보통 PC 하나에 듀얼 모니터 혹은 그 이상의 모니터를 HDMI 케이블을 이용하여 연결해서 사용하는데요.
종종, 프로그램 개발을 하다 보면 1번 모니터, 2번 모니터에 각각 다른 창을 동시에 띄울 수 있게 프로그램을 개발해달라는 고객 분들도 있었는데요.
이럴 때 유용하게 사용할 수 있는 소스코드라고 생각합니다!
그럼 바로 예제 코드를 작성해 보도록 하겠습니다.
먼저 빈 윈폼 프로젝트를 생성해 주시기 바랍니다.
빈 윈폼 프로젝트 생성 및 Form2 폼 하나 더 추가하기
이제 다중 모니터를 감지하는 소스코드를 작성해 보도록 하겠습니다.
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace DualScreenTest { public partial class Form1 : Form { Form2 frm = new Form2();
public Form1() { InitializeComponent();
this.Load += FormLoad_Event; }
/// <summary> /// 폼 Load 이벤트 핸들러 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FormLoad_Event(object sender, EventArgs e) { ScreenDetect(); }
/// <summary> /// 다중 모니터 감지 /// </summary> private void ScreenDetect() { Screen[] sc = Screen.AllScreens;
if (sc.Length > 1) { Screen screen = (sc[0].WorkingArea.Contains(this.Location)) ? sc[1] : sc[0];
frm.Show(); frm.Location = screen.Bounds.Location; frm.WindowState = FormWindowState.Maximized; } } } }
|
실행 결과
위와 같이 Display 가 2개가 잡히는 것을 확인하실 수 있습니다.
그리고 해당 프로그램을 실행시켜보면, Display1에 Main 폼이 뜨고, Display2에 Form2 가 뜨는 것을 확인하실 수 있습니다.
감사합니다.^^
'C# > Windows Form' 카테고리의 다른 글
[C# 윈폼] C# 윈폼 투명 패널(TransparentPanel) 만들기 (0) | 2020.08.11 |
---|---|
[C# 윈폼] ModifierKeys 이용하여 누른 보조키 확인하기 (0) | 2020.08.07 |
[C# 윈폼] Transparent Panel (투명 패널) 만들기 (0) | 2020.08.05 |
[C# 윈폼] Panel 영역에 마우스 올렸을 때, Cursor 변경하기 (0) | 2020.08.04 |
[C# 윈폼] Custom으로 그라데이션 패널(GradientPanel) 컨트롤 만들기 (0) | 2020.07.18 |
이 글을 공유하기