2011-01-20 23 views
1

我在我的winform應用程序中使用DateTimePicker。 DateTimePicker允許用戶選擇一個不大於DateTime.Now的日期。我通過將控件MaxDate設置爲DateTime.Now來做到這一點。當MaxDate設置時,DateTimePicker在XP和Windows Server 2008中的行爲有所不同?

它在XP中正常工作,顯示大於DateTime.Now的日期,並且用戶無法選擇它們。但在Windows Server 2008中,這些日期根本不顯示。

這是預期行爲還是微軟錯誤?

XP alt text Windows Server 2008的alt text

回答

2

本機Windows月曆日曆控件在Vista上得到了一個相當重大的改進,也是Windows 2008的基礎代碼基礎。這影響了DateTimePicker和MonthCalendar類,它們是本地Windows提供的代碼非常簡單的.NET包裝。很多Winforms類都是這樣的。

這被認爲是一個很好的東西,你的用戶界面自動適應新操作系統的外觀和其他程序的行爲方式,而無需你做任何事情。不顯示你已經無法選擇的日期可以說是非常有意義的。除此之外,沒有任何事情可以改變原生Windows代碼的行爲方式,這些包裝器非常薄。主要是因爲本機Windows控件沒有很多旋鈕。

功能,而不是一個錯誤。

1

許多.NET控件的依賴於底層的操作系統。如果Windows用來代表日期時間選擇器的基礎控件不同,那麼Winforms應用程序中顯示的控件將會不同。

您可以看到,只有在XP上,操作系統才能輕鬆控制操作系統。將主題從默認的標準「cartoony」主題更改爲Windows Classic,然後運行.NET應用程序。表單邊界將從圓角和卡通界面變成具有經典格式。

Windows默認使用的日期 - 時間選擇器位於MScomctl.ocx中。

如果在Windows版本(我確信它已經這樣做)之間發生了變化,那麼您的風暴會相應地看起來和/或行爲不同。

相關問題