[c# winform] 듀얼 모니터 감지 및 해당 모니터로 화면 이동

ony·2023년 1월 26일
1

csharp

목록 보기
1/2
post-thumbnail

입사하자마자 만들었던 첫 과제 추억과 함께 티스토리 글 복붙 시작
이때 말투가 더 어른같네..

퇴화하는 인간 🦍 나야나


실행 화면

모니터 배치 및 크기를 인식해 폼에 띄워주고, 해당 모니터를 클릭하면 그 모니터로 폼이 이동합니다.
공장 현장 모니터링 프로그램의 화면 배치를 직관적이게 수정하기 위해 사용한 소스코드.

보통은 이렇게 직관적으로 하기보다는 폼 하나에 그리드를 추가하여 db에 해당 모니터에 해당 폼이 자동으로 바인딩 될 수 있도록 저장하는 것이 보편화된 방법인 것 같습니다.

아무것도 없읍니다. 코드로 버튼 만들어 줄 예정.

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 sc
{
    public partial class Form1 : Form
    {
        Button btn;

        public Form1()
        {
            InitializeComponent();

            Screen[] Monitor = Screen.AllScreens;

            for (int i = 0; i < Monitor.Length; i++)
            {
                btn = new Button();

                btn.Width = Monitor[i].WorkingArea.Width / 10;
                btn.Height = Monitor[i].WorkingArea.Height / 10;
                btn.Left = 300 + (Monitor[i].WorkingArea.Left / 10);
                btn.Top = 200 + (Monitor[i].WorkingArea.Top / 10);
                btn.Text = (i + 1) + "번째 모니터";
                btn.Click += new EventHandler(btnClick);

                this.Controls.Add(btn);

            }

            void btnClick(object sender, EventArgs e)
            {
                int i;
                Button btn = sender as Button;

                string txt = btn.Text.ToString();
                i = Convert.ToInt32(txt.Substring(0, 1));
                // 2자리수 이상으로 안넘어갈 거 같아서 substring 사용 모니터 개수 2자리수 넘어가면 split 사용

                this.showOnMonitor(i);
            }
        }

        // 01. 버튼 클릭시 본인 폼 이동
        private void showOnMonitor(int showOnMonitor)
        {
            Screen[] sc = Screen.AllScreens;

            Screen screen = sc[showOnMonitor - 1]; // 현재모니터 찾기
            this.Location = screen.Bounds.Location; // 모니터위치 변경

        }
    }
}

영차 영차
시간 날 때마다 티스토리 글 옮기기 시작 🐜🐜🐜...

profile
파이(π)형 개발자 🎐🌿🤍

0개의 댓글