Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- mdb table 합치기
- 스위프트
- 대전
- 달력
- 대전 자전거
- file move
- StreamReader
- insert into
- C#
- python
- 유성
- dataset
- MDB
- Xcode
- 노은
- kanna html parser
- kanna parser
- euc-kr
- html parser
- exifread
- EXIF data
- swift
- 엑셀
- Exif
- swift html parser
- 자전거
- 대전 업힐
- 파이썬
- VBA
- 딴지일보 자유게시판 파씽
Archives
- Today
- Total
Fly to the sky & Return
다중 모니터를 이용한 번호 전광판 시스템 만들어보기 본문
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
이번 시간에 소개할 소스는 식당등에서 사용할 수 있는 번호 전광판입니다. 필요해서 만들어봤는데 이런저런 소소한 재미가 있는 작업이였습니다.
프로그램이 동작되면 다음과 같이 작동합니다.
적용된 것들은
1 . 번호를 입력하면 다른 모니터에 번호 전송..
2. 해당 번호를 클릭하면 번호 삭제
3. 번호 전송시 몇초간 크게 화면에 나타내기
요정도입니다.
<Form 1 소스입니다.>
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | 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 WindowsFormsApplication2 { public partial class Form1 : Form { Form2 frm; Form3 frm2; public int tabIndex; public string text_button; public Form1() { InitializeComponent(); } //패널 안에있는 버튼 클릭했을 때.... void btn_Click(object sender, EventArgs e) { Button btn = sender as Button; tabIndex = btn.TabIndex; flp.Controls.Remove(btn); frm.Refresh(); for (int i = 0; i < flp.Controls.Count; i++) { flp.Controls[i].TabIndex = i; } frm.btn_remove(tabIndex); frm.Refresh(); listView1.Items[tabIndex].Remove(); flp.Refresh(); } // 텍스트 박스에 번호를 입력하고 전송할때..... private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { frm2 = new Form3(); //다중 모니터를 인식하는 소스.. Screen[] screens = Screen.AllScreens; if (screens.Length > 1) { Screen scrn = (screens[0].WorkingArea.Contains(this.Location)) ? screens[1] : screens[0]; //새로운 번호 전송시 크게 보여지게하는 소스 frm2.label1.Text = textBox1.Text; frm2.Size = new Size(scrn.Bounds.Width / 2, scrn.Bounds.Height / 2); frm2.label1.Size = new Size(scrn.Bounds.Width * 1 / 2, scrn.Bounds.Height / 2); frm2.Show(); //대충 다중모니터 중앙에 나타나게 하는 소스 frm2.Location = new System.Drawing.Point(scrn.Bounds.Left + scrn.Bounds.Width/2 - 400, scrn.Bounds.Height/2 -100); } else { frm2.label1.Text = textBox1.Text; frm2.Show(); } flp.Controls.Clear(); frm.flp2.Controls.Clear(); //번호별 sort를 구현하기위한 listview ..... 실제 프로그래에서는 visible = false listView1.Items.Add(textBox1.Text); for (int i = 0; i < listView1.Items.Count; i++) { text_button = listView1.Items[i].Text; Button btn = new Button(); btn.Text = text_button; textBox1.Text = ""; btn.Click += new EventHandler(btn_Click); flp.Controls.Add(btn); frm.btn_make(text_button); frm.Refresh(); } } } private void Form1_Load(object sender, EventArgs e) { //번호가 나타날 화면을 다중 모니터에 나타가게 하기 frm = new Form2(this as IMyInterface); Screen[] screens = Screen.AllScreens; if (screens.Length > 1) // Has more screen { Screen scrn = (screens[0].WorkingArea.Contains(this.Location)) ? screens[1] : screens[0]; frm.Show(); frm.Location = new System.Drawing.Point(scrn.Bounds.Left, 0); frm.WindowState = FormWindowState.Maximized; } else { frm.Show(); } } } } |
< form 2 소스입니다.>
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 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 WindowsFormsApplication2 { public partial class Form2 : Form { public string text1; public int i; double oriWidth; double oriHeight; public Form2() { InitializeComponent(); this.frm = frm; } //패널위에 버튼을 생성하는 메소드. public void btn_make(string btn_name) { Button btn = new Button(); btn.Text = btn_name; btn.Size = new Size(flp2.Width*2/11, flp2.Height / 7); btn.Font = new Font("Gulim", flp2.Height / 10); btn.Margin = new Padding(flp2.Width*1/110); flp2.Controls.Add(btn); } // 패널위의 버튼을 삭제하는 메서드 public void btn_remove(int tabIndex) { flp2.Controls.RemoveAt(tabIndex); flp2.Refresh(); } private void Form2_SizeChanged(object sender, EventArgs e) { oriWidth = this.Width; oriHeight = this.Height; flp2.Size = new Size(Convert.ToInt32( oriWidth - 60), Convert.ToInt32(oriHeight * 6/10)); flp2.Location = new System.Drawing.Point(20, Convert.ToInt32(oriHeight * 1 / 4)); } } } | cs |
<form 3> 소스입니다.
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 | 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 WindowsFormsApplication2 { public partial class Form3 : Form { public Form3() { InitializeComponent(); } private void Form3_Shown(object sender, EventArgs e) { this.Show(); Delay(3000); this.Close(); } //특정시간 동안 딜레이 시키는 소스 private static DateTime Delay(int MS) { DateTime ThisMoment = DateTime.Now; TimeSpan duration = new TimeSpan(0, 0, 0, 0, MS); DateTime AfterWards = ThisMoment.Add(duration); while (AfterWards >= ThisMoment) { System.Windows.Forms.Application.DoEvents(); ThisMoment = DateTime.Now; } return DateTime.Now; } } } | cs |
'프로그래밍 > c# & VB 등' 카테고리의 다른 글
mdb 데이터베이스 자료 업데이트 하기 (0) | 2018.01.31 |
---|---|
dataset 마지막 Row 값 알아내기 (0) | 2018.01.30 |
[c#] 선택된 폴더 내부에 있는 MDB 파일들 마다 들어있는 특정 테이블을 합치기 (최종완성본) (0) | 2016.04.04 |
[c#] mdb 특정 테이블의 컬럼 값을 불러오는 소스 (0) | 2016.04.04 |
[C#] 두개의 mdb파일 내부에 있는 테이블을 합치는 코드 (0) | 2016.04.02 |