// 좌석 버튼 클릭시 void newbtn_Click(object sender, EventArgs e) { Button btn = sender as Button; int btn_num = int.Parse(btn.Text); SeatBtn seatBtn = new SeatBtn(); seatBtn.btn_FocusRegister(btn); SeatInfo cur_seat = DataManager.seat_List[btn_num - 1]; btn.BackColor = Color.FromArgb(230, 255, 204, 0); // 노란색으로 바꾸기 if (cur_seat.isUsed) { tb_id.Text = cur_seat.id.ToString(); tb_name.Text = cur_seat.name; //readOnly로 설정 tb_id.ReadOnly = true; tb_name.ReadOnly = true; } else { tb_id.ReadOnly = false; tb_name.ReadOnly = false; tb_id.Clear(); tb_name.Clear(); } tb_pos.Text = btn.Text; }
// 좌석현황 버튼 처리 private void make_Btn() { SeatBtn seatBtn = new SeatBtn(); for (int num = 0; num < Seat.total_SeatCnt; num++) { // 리스트안 각각 배열하나마다 객체를 또 생성해줘야 오류가 나지않는다. newButton[num] = new Button(); newButton[num].Text = (num + 1).ToString();//num이 0부터 시작하기때문에 newButton[num].Name = "seat" + (num + 1).ToString(); newButton[num].Click += new EventHandler(newbtn_Click); newButton[num].GotFocus += new EventHandler(seatBtn.newbtn_OnGotFocus); newButton[num].LostFocus += new EventHandler(seatBtn.newbtn_OnLostFocus); newButton[num].MouseMove += new System.Windows.Forms.MouseEventHandler(seatBtn.newbtn_MouseMove); newButton[num].MouseLeave += new EventHandler(seatBtn.newbtn_MouseLeave); newButton[num].Size = new Size(37, 37); newButton[num].Font = new Font("맑은 고딕", 9, FontStyle.Bold); newButton[num].ForeColor = Color.White; //num+1에 해당하는 위치의 좌석 정보 불러오기 SeatInfo seat = DataManager.seat_List[num]; //사용 가능, 사용중 버튼 색을 다르게 세팅 if (seat.isUsed == false) { newButton[num].BackColor = Color.FromArgb(230, 0, 51, 255); } else { newButton[num].BackColor = Color.FromArgb(250, 204, 204, 204); } // 버튼 동적 생성 int btn_Row = num; // 행 번호, 첫 줄은 세로로 이동시키지 않기 위해 1을 뺌 int btn_ColumnCnt = 20; // 한 줄당 버튼 개수 int btn_distance = 40; // 버튼 간격 if (num < btn_ColumnCnt) { // 1로할경우는 num-1를 해줘야하지만 num이 0인 경우는 알아서 처리된다. // num -1를 한 이유는 행에서 가장 첫번째 버튼은 고정으로 하기위해 // 7은 가장자리랑 떨어지기위해 더해준값, newButton[num].Location = new Point(7 + btn_distance * (num), (btn_Row / btn_ColumnCnt) * btn_distance); } else { newButton[num].Location = new Point(7 + btn_distance * (num - (btn_ColumnCnt * (btn_Row / btn_ColumnCnt))), (btn_Row / btn_ColumnCnt) * btn_distance); } seatList.Controls.Add(newButton[num]); } }
// 좌석버튼이 포커싱을 잃었을때 public void newbtn_OnLostFocus(object sender, EventArgs e) { Button btn = sender as Button; int btn_num = int.Parse(btn.Text); bool focus_Check = SeatBtn.btn_FocusCheck(btn); if (focus_Check) { } else { if (DataManager.seat_List[btn_num - 1].isUsed) { btn.BackColor = Color.FromArgb(250, 204, 204, 204); //회색으로 바꾸기 } else { btn.BackColor = Color.FromArgb(230, 0, 51, 255); // 파란색으로 바꾸기 } } }
public void newbtn_MouseLeave(object sender, EventArgs e) { Button btn = sender as Button; int btn_num = int.Parse(btn.Text); bool focus_Check = SeatBtn.btn_FocusCheck(btn); if (focus_Check) { } else { // btn_num보다 seat_List의 인덱스가 1작으므로 if (DataManager.seat_List[btn_num - 1].isUsed) { btn.BackColor = Color.FromArgb(250, 204, 204, 204); } else { btn.BackColor = Color.FromArgb(230, 0, 51, 255); } } }