Share via


Windows XP の機能と Windows フォーム コントロール

Microsoft® Windows® XP は、Windows フォームの作成時に利用できる次の新機能を搭載しています。

  • ユーザー インターフェイス (UI) の新しい外観と動作

  • ListView コントロールの新しいビュー

  • ユーザーの簡易切り替え

Windows XP におけるユーザー インターフェイスの変更

Windows XP のリリースでは、Windows ユーザー インターフェイスに新しい外観と動作が導入されました。 Visual Studio .NET に含まれているのと同じ機能コントロールで構成される Windows XP の UI は、外観が更新されています。 Windows XP の機能強化の例を 2 つ挙げると、1 つは、マウスを配置すると明るくなる、角の丸いコントロール、もう 1 つは、カラフルな ProgressBar コントロールです。

"visual スタイル" を有効にしたときの Windows XP でのサンプルのフォームとコントロールの外観

WinXPConAfter スクリーンショット

注意

ここで説明する機能は、Windows XP オペレーティング システム上で実行されるアプリケーションのみに適用されます。Windows XP 以外のプラットフォームでアプリケーションを実行すると、コントロールは従来の外観を保持し、visual スタイルに関連するコードはすべて無効になります。

対照的に、Visual Studio で開発者に提供されるコントロールは、同じコントロールの場合でも外観が異なります。

Visual Studio で作成したときのサンプルのフォームとコントロールの既定の外観

WinXPConBefore スクリーンショット

フォームは、クライアント領域および非クライアント領域という 2 つの部分から構成されると考えることができます。 Windows XP オペレーティング システムで動作するすべてのアプリケーションには、ウィンドウ枠、タイトル バー、および非クライアント スクロール バーを含む非クライアント領域があります。 Windows XP では、既定で非クライアント領域に visual スタイルが適用されるため、Windows フォームを Windows XP で実行すると、更新されたタイトル バーとスクロール バーが表示されます。 ここでは、クライアント領域を変更する方法について説明します。

06da8ztk.collapse_all(ja-jp,VS.110).gifvisual スタイル

visual スタイルとは、ユーザーが変更できる、アプリケーションやオペレーティング システムのユーザー インターフェイスの外観です。 既に述べたように、Windows XP でフォームを実行すると、すぐにフォームのスクロール バーとタイトル バーが変更されます。Windows XP での実行時には、アプリケーションが EnableVisualStyles メソッドを呼び出すと、ほとんどの Windows フォーム コントロールが visual スタイルを自動的に採用します。 詳細については、「方法 : Windows XP の visual スタイルを有効にする」を参照してください。

Windows フォーム コントロールには、すべてのオペレーティング システムで同じ外観を保持するものがいくつかあり、EnableVisualStyles を実装しても、これらのコントロールは影響を受けません。 たとえば、LabelLinkLabelDomainUpDownNumericUpDown、および CheckedListBox の各コントロールなどです。

Windows XP ListView スタイル

UI の新しい外観に加え、Windows XP では、ListView コントロール用として、Windows エクスプローラーの右側のパネルに表示されるような、次の 2 つの新しいスタイルも導入されています。

  • グループ ビュー

  • 並べて表示ビュー

Windows XP の ListView コントロールのグループ化機能を使用すると、論理的に関連する項目をまとめて表示できます。 これらのグループは、画面上で、タイトルを含む水平方向のグループ ヘッダーで区切られます。

Windows XP より以前のプラットフォームでは、グループは表示されません。 すべての項目が通常どおりに表示されます。 詳細については、「方法 : Windows フォーム ListView コントロールの項目をグループ化する」を参照してください。

挿入マークは、ドラッグした項目が配置される場所をユーザーに知らせるマークです。 ListView コントロールの AutoArrange プロパティに false を設定すると、挿入マークが表示されます。 ユーザーが項目を他の 2 つの項目の間にドラッグすると、この項目が新しく配置される場所が挿入マークによって示されます。

Windows XP より以前のプラットフォームでは、挿入マークは表示されず、挿入マークのプロパティとメソッドを呼び出しても無効になります。 詳細については、「方法 : Windows フォーム ListView コントロールに挿入マークを表示する」を参照してください。

ListView コントロールの並べて表示ビュー機能を使用すると、グラフィカルな情報とテキスト情報をバランスよく表示できます。 並べて表示ビューの項目で表示されるテキスト情報は、詳細表示用に定義されている列情報と同じ情報です。 並べて表示ビューは、ListView コントロールのグループ化機能または挿入マーク機能のいずれかと組み合わせて使用できます。 並べて表示ビューでは、サイズが 32 × 32 のアイコンと数行のテキストを使用します。

並べて表示ビューのプロパティとメソッドを使用すると、各項目をどの列フィールドに表示するのかを指定でき、並べて表示ビュー ウィンドウ内の全項目のサイズと外観をまとめて制御できます。 また、並べて表示ビューでは、テキストの最初の行は常に項目の名前になります。

Windows XP より以前のプラットフォームでは、ListView は LargeIcon ビューで表示されます。 詳細については、「方法 : Windows フォーム ListView コントロールの "並べて表示" ビューを有効にする」を参照してください。

Windows XP におけるユーザーの簡易切り替え

Windows XP では、ユーザーの簡易切り替えが導入されています。この機能により、複数のユーザーがコンピューターを共有し、各自が実行しているプログラムを終了せずにユーザー セッションを切り替えることができます。 .NET Framework は、現在のユーザーが切り替わったときに発生する SessionSwitch イベントを提供します。

注意

SessionSwitch イベントは Windows XP だけに適用され、SessionSwitch イベント ハンドラーのコードは、XP 以外のプラットフォームで実行した場合無視されます。

次のコードは、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 フォーム ListView コントロールの項目をグループ化する

方法 : Windows フォーム ListView コントロールの "並べて表示" ビューを有効にする

方法 : Windows フォーム ListView コントロールに挿入マークを表示する

関連項目

FlatStyle

SessionSwitch