Windows XP 기능 및 Windows Forms 컨트롤

Windows Forms을 만들 때 활용할 수 있는 Microsoft® Windows® XP의 새로운 기능은 다음과 같습니다.

  • UI(사용자 인터페이스)의 새로운 모양과 동작(모양 및 느낌)

  • ListView 컨트롤에 대한 새 보기

  • 빠른 사용자 전환

Windows XP의 사용자 인터페이스에서 변경된 내용

Windows XP는 해당 릴리스에서 Windows 사용자 인터페이스에 새로운 모양과 동작을 도입했습니다. Windows XP의 UI는 Visual Studio .NET에 포함된 것과 동일한 기능 컨트롤로 구성되었지만 업데이트된 모양을 갖추고 있습니다. Windows XP의 향상된 기능 중 두 가지 예는 마우스를 위로 가져가면 밝게 표시되는 모퉁이가 둥근 컨트롤 및 컬러 ProgressBar 컨트롤입니다.

"비주얼 스타일" 이 설정된 Windows XP에서 샘플 폼과 컨트롤이 표시되는 모양

WinXPConAfter 스크린 샷

참고

이 항목에 설명된 기능은 Windows XP 운영 체제에서 실행하는 응용 프로그램에만 적용됩니다. 다른 플랫폼에서 실행하면 컨트롤은 기본 UI 모양을 유지하고 비주얼 스타일과 관련된 코드는 전혀 영향을 미치지 않습니다.

이와 반대로 개발자가 Visual Studio에서 사용할 수 있는 컨트롤은 동일한 컨트롤일지라도 이러한 모양을 공유하지 않습니다.

Visual Studio를 사용하여 만드는 경우 샘플 폼과 컨트롤이 기본적으로 표시되는 모양

WinXPConBefore 스크린 샷

폼에는 두 개의 구분된 부분, 즉 클라이언트 영역과 비클라이언트 영역이 있다고 생각할 수 있습니다. Windows XP 운영 체제에서 실행되는 모든 응용 프로그램에는 창 프레임, 제목 표시줄 및 비클라이언트 스크롤 막대 등을 포함하는 비클라이언트 영역이 있습니다. 운영 체제에서는 기본적으로 비클라이언트 영역에 비주얼 스타일이 적용되므로 Windows Forms이 Windows XP에서 실행되면 업데이트된 제목 표시줄과 스크롤 막대가 표시됩니다. 이 항목에서는 클라이언트 영역을 변경하는 방법을 설명합니다.

비주얼 스타일

비주얼 스타일은 응용 프로그램 또는 운영 체제의 사용자 인터페이스 중에서 사용자가 수정할 수 있는 모양입니다. 이미 언급한 것처럼 Windows XP에서 실행하면 폼의 스크롤 막대와 제목 표시줄이 즉시 변경됩니다. 응용 프로그램에서 EnableVisualStyles 메서드를 호출하는 경우 대부분의 Windows Forms 컨트롤은 Windows XP에서 실행될 때 비주얼 스타일을 자동으로 채택합니다. 자세한 내용은 방법: Windows XP 비주얼 스타일 사용을 참조하십시오.

일부 Windows Forms 컨트롤은 모든 운영 체제에서 동일하게 보이며 EnableVisualStyles를 구현해도 영향을 받지 않습니다. 이러한 컨트롤에는 Label, LinkLabel, DomainUpDown, NumericUpDownCheckedListBox 컨트롤이 있습니다.

Windows XP ListView 스타일

Windows XP에서 UI의 새로운 모양 이외에 Windows 탐색기의 오른쪽 창에서 알 수 있듯이 ListView 컨트롤의 두 가지 새 스타일도 도입했습니다.

  • Group 보기

  • Tile 보기

Windows XP에 포함된 ListView 컨트롤의 그룹화 기능을 사용하면 논리적으로 연결된 항목 집합을 시각적으로 정렬할 수 있습니다. 이러한 그룹은 항목 이름이 포함된 가로 그룹 헤더에 의해 화면에서 분리됩니다.

Windows XP 이전의 플랫폼에서는 그룹이 간단하게 표시되지 않습니다. 모든 항목은 평소와 같이 표시됩니다. 자세한 내용은 방법: Windows Forms ListView 컨트롤에서 항목 그룹화를 참조하십시오.

사용자는 끌어 온 항목이 배치될 위치를 삽입 표시를 통해 알 수 있습니다. ListView 컨트롤의 AutoArrange 속성이 false로 설정되면 삽입 표시가 나타납니다. 사용자가 항목을 두 개의 다른 항목 사이에 배치하면 삽입 표시로 항목의 새 예상 위치가 표시됩니다.

Windows XP 이전의 플랫폼에서는 삽입 표시가 나타나지 않으며 삽입 표시 속성 및 메서드에 대한 호출이 적용되지 않습니다. 자세한 내용은 방법: Windows Forms ListView 컨트롤에 삽입 표시 나타내기를 참조하십시오.

ListView 컨트롤의 Tile 보기 기능을 사용하면 그래픽 정보와 텍스트 정보 간의 시각적 균형을 이룰 수 있습니다. Tile 보기에서 항목에 대해 표시된 텍스트 정보는 자세히 보기에 대해 정의된 열 정보와 같습니다. Tile 보기는 ListView 컨트롤의 그룹화 기능이나 삽입 표시 기능과 함께 작동합니다. Tile 보기는 32 x 32 아이콘 및 여러 줄의 텍스트를 사용합니다.

Tile 보기 속성과 메서드를 사용하면 각 항목에 대해 표시할 열 필드를 지정할 수 있으며 Tile 보기 창 내에 있는 모든 항목의 크기와 모양을 일괄적으로 제어할 수 있습니다. 쉽게 구별할 수 있도록 Tile의 텍스트 첫 줄에는 항상 항목 이름이 표시됩니다.

Windows XP 이전의 플랫폼에서는 ListView가 LargeIcon 보기에 표시됩니다. 자세한 내용은 방법: Windows Forms ListView 컨트롤의 Tile 보기 사용을 참조하십시오.

Windows XP에서 빠른 사용자 전환

Windows XP는 여러 사용자가 컴퓨터를 공유하며 실행 중인 프로그램을 종료하지 않고 사용자 세션 간에 전환할 수 있는 빠른 사용자 전환을 도입했습니다. .NET Framework에서는 현재 사용자가 변경될 때 발생하는 SessionSwitch 이벤트를 제공합니다.

참고

SessionSwitch 이벤트는 Windows XP에만 적용되므로 다른 플랫폼에서 실행되면 SessionSwitch 이벤트 처리기의 코드가 무시됩니다.

다음 코드에서는 SessionSwitch 이벤트의 로그에 데이터를 기록하는 것을 보여 줍니다.

Private Sub SessionSwitch(ByVal sender As System.Object, ByVal e As _
Microsoft.Win32.SessionSwitchEventArgs)
    If e.Reason = SessionSwitchReason.SessionLogon Then
        My.Computer.EventLogs.Application.WriteEntry( _
My.User.Username.ToString & " logged on at " & _
My.Computer.Clock.LocalTime.Now.ToString)
    ElseIf e.Reason = SessionSwitchReason.SessionLogoff Then
        My.Computer.EventLogs.Application.WriteEntry( _
My.User.Username.ToString & " logged off at " & _
My.Computer.Clock.LocalTime.Now.ToString)
    End If
End Sub
private void sessionSwitch(System.Object sender, _
Microsoft.Win32.SessionSwitchEventArgs e)
{
    if (e.Reason == SessionSwitchReason.SessionLogon)
        EventLog.WriteEntry("sessionSwitch", _
SystemInformation.UserName.ToString() + " logged on at " + _
DateTime.Now.TimeOfDay.ToString());
    else if (e.Reason == SessionSwitchReason.SessionLogoff)
        EventLog.WriteEntry("sessionSwitch", _
SystemInformation.UserName.ToString() + " logged off at " + _
DateTime.Now.TimeOfDay.ToString());
}

참고 항목

작업

방법: Windows Forms ListView 컨트롤에서 항목 그룹화

방법: Windows Forms ListView 컨트롤의 Tile 보기 사용

방법: Windows Forms ListView 컨트롤에 삽입 표시 나타내기

참조

FlatStyle

SessionSwitch