입사하자마자 만들었던 첫 과제 추억과 함께 티스토리 글 복붙 시작
이때 말투가 더 어른같네..
퇴화하는 인간 🦍 나야나
실행 화면
모니터 배치 및 크기를 인식해 폼에 띄워주고, 해당 모니터를 클릭하면 그 모니터로 폼이 이동합니다.
공장 현장 모니터링 프로그램의 화면 배치를 직관적이게 수정하기 위해 사용한 소스코드.
보통은 이렇게 직관적으로 하기보다는 폼 하나에 그리드를 추가하여 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; // 모니터위치 변경
}
}
}
영차 영차
시간 날 때마다 티스토리 글 옮기기 시작 🐜🐜🐜...