Windows XP 功能和 Windows Form 控制項
更新:2007 年 11 月
當您建立 Windows Form 時,可以利用 Microsoft® Windows® XP 中的新功能:
使用者介面 (UI) 中的新外觀和新行為 (外觀及操作)
ListView 控制項的新檢視
快速切換使用者
Windows XP 中的使用者介面變更
Windows XP 的發行為 Windows 使用者介面帶來了新的外觀與行為。由 Visual Studio .NET 中所包含的相同功能控制項所組成,Windows XP UI 有了嶄新的外觀。這裡有兩個 Windows XP 增強功能的例子,一是在滑鼠經過時其圓形邊角會發亮的控制項,另一個則是色彩豐富的 ProgressBar 控制項。
啟用「視覺化樣式」時,範例表單和控制項在 Windows XP 上看起來的樣子
注意事項: |
---|
這個主題所描述的功能,只適用在 Windows XP 作業系統上執行的應用程式。在其他平台上執行時,控制項會保有傳統的 UI 外觀,任何和視覺化樣式有關的程式碼都不會有作用。 |
相較之下,即使是相同的控制項,可供 Visual Studio 程式開發人員使用的控制項也不會共用這個外觀。
使用 Visual Studio 建立範例表單和控制項時的預設外觀
您可以將表單想成具有兩個不同的部分:工作區和非工作區。在 Windows XP 作業系統上執行的所有應用程式都具有非工作區,這包括了視窗框架、標題列和非工作區捲軸。根據預設,作業系統會將視覺化樣式套用至非工作區,如此一來,當 Windows Form 在 Windows XP 上執行時,您就會看到更新的標題列與捲軸。本說明主題將說明如何變更工作區。
視覺化樣式
視覺化樣式是指應用程式或作業系統中,使用者可以修改的使用者介面外觀。如先前所述,在 Windows XP 上執行時,表單的捲軸和標題列會立即變更;如果應用程式呼叫 EnableVisualStyles 方法,在 Windows XP 上執行時,大部分的 Windows Form 控制項都會自動採用視覺化樣式。如需詳細資訊,請參閱 HOW TO:啟用 Windows XP 視覺化樣式。
有一些 Windows Form 控制項在所有作業系統上看起來都一樣;實作 EnableVisualStyles 對於這些控制項沒有任何影響。其中包括 Label、LinkLabel、DomainUpDown、NumericUpDown 和 CheckedListBox 控制項。
Windows XP ListView 樣式
除了 UI 的新外觀之外,Windows XP 還引用了用於 ListView 控制項的兩個新樣式,在 Windows 檔案總管右邊的窗格中就可以看出不同。
群組顯示
並排顯示
在 Windows XP 中,ListView 控制項的群組功能可以讓您用視覺化方式,將邏輯上相關的項目排列在一起。在畫面上,這些群組是以含有標題的水平群組標頭加以區隔。
在 Windows XP 以前的平台上,並不會顯示出這些群組,所有項目的顯示方式都和以前一樣。如需詳細資訊,請參閱 HOW TO:在 Windows Form ListView 控制項中群組項目。
插入標記向使用者顯示拖曳的項目會放置的地點。當 ListView 控制項的 AutoArrange 屬性是設定為 false 時,插入標記會顯示出來。當使用者拖曳項目至其他兩個項目之間時,插入標記會顯示預期的項目新位置。
在 Windows XP 以前的平台上,插入標記並不會顯示出來,而對插入標記屬性和方法的呼叫也不會有任何作用。如需詳細資訊,請參閱 HOW TO:在 Windows Form ListView 控制項中顯示插入標記。
ListView 控制項的並排顯示功能,讓您在圖形和文字資訊之間取得視覺上的平衡。以並排顯示所顯示的項目文字資訊,和詳細檢視定義的資料行資訊相同。並排顯示和 ListView 控制項的群組或插入標記功能一起運作。並排顯示是使用 32 x 32 的圖示以及數行文字。
並排顯示屬性和方法讓您指定每個項目要顯示的資料行欄位,並集體控制並排顯示視窗中所有項目的大小和外觀。為了清楚起見,並排顯示中的第一行文字永遠是項目名稱。
在 Windows XP 以前的平台上,ListView 會出現在 LargeIcon 檢視中。如需詳細資訊,請參閱 HOW TO:在 Windows Form ListView 控制項中啟用並排顯示。
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());
}
請參閱
工作
HOW TO:在 Windows Form ListView 控制項中群組項目
HOW TO:在 Windows Form ListView 控制項中啟用並排顯示
HOW TO:在 Windows Form ListView 控制項中顯示插入標記