윈폼] 판넬 이동관련 처리 방법.
모델을 만들고 이걸 컨트롤을 디자인 해서 띄웠더니 구분되는 로직마다 폼이 떠서 창을 세번이나 띄워야 하기에 뭔가 좋은 방법이 없을까 하고
만들어봤다. 새로운 작업이력관리 프로그램에 적용도 해보았다.
<form>
< 이전 : x, 다음 : 아래 페이지로 이동 >
< 이전 : 위페이지로, 001 다음 : 아래 페이지로, 002 는 아래 아래 페이지로 >
< 이전 : 위 페이지, 다음 : x >
< 이전 : 위 위 페이지, 다음 : X >
소스이다.
protected override void OnLoad(EventArgs e)
{
uC0011.Next("001", uC001UC0011);
uC001UC0011.Next("001", uC001UC001UC0011);
uC001UC0011.Next("002", uC001UC001UC0021);
base.OnLoad(e);
uC0011.GoToNext += UC0011_GoToNext;
uC0011.BackToPrev += UC0011_BackToPrev;
uC001UC0011.GoToNext += UC001UC0011_GoToNext;
uC001UC0011.BackToPrev += UC001UC0011_BackToPrev;
uC001UC001UC0011.BackToPrev += UC001UC001UC0011_BackToPrev;
uC001UC001UC0021.BackToPrev += UC001UC001UC0021_BackToPrev;
uC0011.Dock = DockStyle.Fill;
uC001UC0011.Dock = DockStyle.Fill;
uC001UC001UC0011.Dock = DockStyle.Fill;
uC001UC001UC0021.Dock = DockStyle.Fill;
uC0011.BringToFront();
}
private void UC001UC001UC0021_BackToPrev(Control prev)
{
prev.BringToFront();
}
private void UC001UC001UC0011_BackToPrev(Control prev)
{
prev.BringToFront();
}
private void UC001UC0011_BackToPrev(Control prev)
{
prev.BringToFront();
}
private void UC001UC0011_GoToNext(string next, object[] prms)
{
switch (next) {
case "001":
uC001UC001UC0011.BringToFront();
if (prms != null && 0 < prms.Length)
{
// uC001UC001UC0011.SetData("" + prms[0]);
}
break;
case "002":
uC001UC001UC0021.BringToFront();
if (prms != null && 0 < prms.Length)
{
// uC001UC001UC0021.SetData("" + prms[0]);
}
break;
}
}
private void UC0011_BackToPrev(Control prev)
{
prev.BringToFront();
}
private void UC0011_GoToNext(string next, object[] prms)
{
uC001UC0011.BringToFront();
// prms는 uC001UC0011 에 필요한 정보를 고정된 순서로 전달되며 필요한 데이타 타입으로 캐스팅 해서 사용.
if (prms != null && 0 < prms.Length)
{
uC001UC0011.SetData("" + prms[0]);
}
}
이렇게 form에서는 네비게이터 이동처리만 하고 실제 모듈에 대한 처리는 판넬 내부에서 직접처리하게 만들었다.
'# 2) .Net ( Vs 2005 ) > WinForm' 카테고리의 다른 글
Tree Node 포커스 없어도 하이라이트 표시. (0) | 2018.03.11 |
---|---|
좌표계, 삼각함수, 각변환 기본적인 내용. (0) | 2018.01.20 |
그룹 박스 그리기 ( 객체 다중 선택 ) (0) | 2016.08.07 |
Scroll 같은? 눈속임?? (0) | 2016.07.22 |
대리자를 잘못 사용해서 나타난 버그.. (0) | 2016.07.20 |