C# 윈폼 슬라이드메뉴 만들기
C#/Tip :
2009. 9. 19. 14:43
웹사이트를 보면 한번씩 메뉴창이 슬라이드로 나오는 것을 본적이 있을겁니다.
심심해서 그런 기능 구현 해보았는데...
생각보다 괜찮을거 같네요...
먼저 윈폼에 패널을 하나 추가하고 로케이션 값을 -160, 50 정도 줍니다.(Y값은 중요하지 않아요)
좀더 다듬어서 쓰면 쓸만할듯 하네요 ㅎㅎㅎ...
심심해서 그런 기능 구현 해보았는데...
생각보다 괜찮을거 같네요...
먼저 윈폼에 패널을 하나 추가하고 로케이션 값을 -160, 50 정도 줍니다.(Y값은 중요하지 않아요)
public Form1() { InitializeComponent(); TimerLord(); } //메뉴패널이 나타날때 사용할 타이머 private Timer MenuSlideTimerUP = new Timer(); //메뉴패널이 사라질때 사용할 타이머 private Timer MenuSlideTimerDOWN = new Timer(); //타이머들을 셋팅 private void TimerLord() { MenuSlideTimerUP.Interval = 50; MenuSlideTimerUP.Tick += new EventHandler(MenuSlideTimerUP_Tick); MenuSlideTimerDOWN.Interval = 50; MenuSlideTimerDOWN.Tick += new EventHandler(MenuSlideTimerDOWN_Tick); } //슬라이드의 작동상태 private bool UPBOOL = false; private void panel1_MouseMove(object sender, MouseEventArgs e) { if (UPBOOL == false) { UPBOOL = true; MenuSlideTimerUP.Start(); } } private void panel1_MouseLeave(object sender, EventArgs e) { if (UPBOOL == true) { UPBOOL = false; MenuSlideTimerDOWN.Start(); } } private void MenuSlideTimerUP_Tick(object sender, EventArgs e) { if (MenuSlideTimerDOWN.Enabled == true) { MenuSlideTimerDOWN.Dispose(); } if (panel1.Left >= 0) { panel1.Left = 0; MenuSlideTimerUP.Stop(); } else panel1.Left += 10; } private void MenuSlideTimerDOWN_Tick(object sender, EventArgs e) { if (MenuSlideTimerUP.Enabled == true) { MenuSlideTimerUP.Dispose(); } if (panel1.Left <= -160) { panel1.Left = -160; MenuSlideTimerDOWN.Stop(); } else panel1.Left -= 10; }마우스를 가져가면 열리고 다시 빼면 닫히는....
좀더 다듬어서 쓰면 쓸만할듯 하네요 ㅎㅎㅎ...
'C# > Tip' 카테고리의 다른 글
C# 소켓통신의 개요 (1) | 2009.10.01 |
---|---|
C# RichTextBox 단어별 글자색 지정하기 (0) | 2009.09.22 |
C# 웹에서 파일 다운로드 방법 (0) | 2009.09.16 |
C# XML 의 노드를 추가, 수정, 삭제 하기 (1) | 2009.09.12 |
C# XML에서 자식노드 생성, 값 넣기 (2) | 2009.09.12 |