최상위 폼은 프로그램의 내용을 사용자에게 효과적으로 보여줄 수 있습니다. 예를 들어 여러분이 지금 윈도우즈를 쓰시고 계시다면 바로 밑의 작업표시줄이나 작업관리자도 최상위 폼을 사용한 프로그램의 하나라고 할 수가 있겠네요. 그러나 최상위 폼을 VB 6에서 구현 하려면 아래와 같이 API를 호출해야 되었습니다.
VB 6에서의 최상위 폼 구현Option Explicit Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Sub FAOT(F As Form, OnTop As Boolean) ' FAOT=Form Always On Top 'hwndInsertAfter values Const HWND_TOP = 0 Const HWND_BOTTOM = 1 Const HWND_TOPMOST = -1 Const HWND_NOTOPMOST = -2 'wFlags values Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2 Const SWP_NOZORDER = &H4 Const SWP_NOREDRAW = &H8 Const SWP_NOACTIVATE = &H10 Const SWP_FRAMECHANGED = &H20 'The frame changed: send WM_NCCALCSIZE Const SWP_SHOWWINDOW = &H40 Const SWP_HIDEWINDOW = &H80 Const SWP_NOCOPYBITS = &H100 Const SWP_NOOWNERZORDER = &H200 'Don't do owner Z ordering Const SWP_DRAWFRAME = SWP_FRAMECHANGED Const SWP_NOREPOSITION = SWP_NOOWNERZORDER If OnTop = True Then 'Turn on the TopMost attribute. SetWindowPos F.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE ElseIf OnTop = False Then 'Turn off the TopMost attribute. SetWindowPos F.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE End If End Sub를 모듈로 선언하고 최상위화 시킬 폼의 로드 부분에FAOT Me, True를 써주면 된다.
그러나 VB.NET에선 최상위 폼을 아래와 같이 간편히 지정해줄 수가 있습니다.
VB.NET에서의 최상위 폼 구현
최상위할 폼의 로드 부분에
Me.TopMost = true를 써주거나 해당 폼의 디자이너에서 속성의 TopMost를 True로 바꿔주면 된다.
이렇게 VB.NET에선 간편하면서도 강력한 프로그래밍을 할 수가 있습니다. 비주얼 스튜디오의 도움말을 보시면 이 외에도 VB6 사용자를 위한 도움말이 많이 준비되어 있습니다. 다음은 VB.NET에서 레지스트리에 접근하는 법을 알아보겠습니다.
