퇴근5분전



 전에 만들었던 알람 메세지 팝업기는 ThreadTimer를 이용해서 해당 시간까지 체크해서

시간이 되면 팝업을 시키는 형태였으나... 이번 플젝은 스케쥴기능이 없어서

그냥 바로 노출되도록 만들었는데...

간단히 알람 뷰폼을 만들어서 화면 구석에 배치하고 투명색을 지정해 준후 배경으로 깔아놓는다.

그리고 여기에 팝업 창을 추가하면서 좌표값을 조정하면...



최근순서가 앞으로 오도록 위처럼 쌓이게 된다..

투명폼을 둔 이유는 듀얼 모니터일경우 위처럼 살짝 대각선으로 쌓게 되면 모니터 위치에 따라

다른 모니터로 삐져나온다...

창을 닫을때마다 하나씩 앞으로 땡겨오는 형태로 구현이 되었다.

 80여 라인으로 구현한 것 치곤.. 나름 괜찮음..


AddMessage 메서드.... 소스임.

 AlramForm fm = new AlramForm();
            fm.HeaderText = header + " " + fms.Count.ToString();
            fm.BodyText = body;
            fm.Size = BasicSize;
            fms.Add(fm);
            fm.TopLevel = false;
            fm.TopMost = true;
            MainForm.Controls.Add(fm);
          
            fm.PerformAutoScale();
            fm.FormClosing += delegate
            {              
                foreach (Form _Form in fms)
                {
                    _Form.Left -= 5; 
                    _Form.Top += 3;
                    fm.Activate();
                }
                fms.Remove(fm);
            };

            int cnt = fms.Count;
            foreach (Form _Form in fms)
            {
                _Form.Left = MainForm.Width - fm.Width + ((cnt) * 5) - 5; 
                _Form.Top = MainForm.Height - fm.Height - ((cnt) * 3) + 4;
                cnt--;
                fm.Activate();
            }
            fm.BringToFront();
            fm.Show();