티스토리 뷰



다른 프로그램을 실행시켜도 화면 한 구석에 항상 창이 보이는 응용 프로그램을 제작해야 하는 필요가 생겼습니다. 통상 트레이(Tray)등을 활용하는 경우가 많지만 임베디드 환경처럼 키보드도 없고 윈도 상태바도 숨김으로 동작한다면 이런 필요를 충족시켜주기에는 한계가 있습니다.

예를 들어 한 응용 프로그램에서 다른 프로그램을 실행시킨 다음에 ALT+TAB이나 트레이 등의 방법을 사용하지 않고 원래의 프로그램으로 돌아올 방법이 필요한 것입니다. 아니면 너무나 자주 사용하는 프로그램이기 때문에 항상 가동 중에 있다가 다른 프로그램을 사용하고 있는 중이더라도 버튼만 누르면 해당 프로그램으로 복귀하고 싶은 필요를 해결해 주고자 하는 경우입니다.

이런 경우 C# WinForm의 TopMost 속성을 사용하는 경우가 많은데 이 속성을 설정하더라도 다른 프로그램을 사용하게 되면 해당 창은 뒤로 밀리게 됩니다. 이런 경우 타이머와 TopMost 속성을 적절하게 조합해서 사용하면 다른 프로그램을 사용하더라도 항상 보이는 창을 만들 수 있습니다.

우선 WinForm에 타이머 오브젝트를 추가하고 적절한 시간을 할당하여 타이머가 가동하도록 합니다. 저의 경우 1초에 2회 정도 동작하도록 시간에 500(ms)을 지정했습니다.

타이머 오브젝트를 추가했으면 타이머 처리 루틴에 다음과 같은 코드를 추가하면 간단하게 항상 보이는 창을 만들 수 있습니다. 창에 버튼을 추가하거나 기타 적절한 처리를 수행하도록 하면 됩니다.

this.TopMost = true;
this.Focus();
this.BringToFront();
this.TopMost = false;

 


댓글
댓글쓰기 폼