2011-01-20 1 views
1

WinForm 응용 프로그램에서 DateTimePicker를 사용하고 있습니다. DateTimePicker를 사용하면 DateTime.Now보다 크지 않은 날짜를 선택할 수 있습니다. 나는 DateTime.Now에 MaxDate 컨트롤을 설정하여이 작업을 수행했습니다.MaxDate가 설정된 경우 XP 및 Windows Server 2008에서 DateTimePicker의 동작이 다릅니 까?

XP에서 제대로 작동하므로 DateTime.Now보다 큰 날짜가 표시되고 사용자가 선택할 수 없습니다. 그러나 Windows Server 2008에서는 이러한 날짜가 전혀 표시되지 않습니다.

이것은 예상 된 동작입니까 아니면 Microsoft 버그입니까?

XP의 .NET 컨트롤 2008 alt text

답변

2

네이티브 Windows 월 달력 컨트롤은 Windows 2008의 기본 코드 기반 인 Vista에서 상당히 획기적인 기능을 수행했습니다. 이는 DateTimePicker 및 MonthCalendar 클래스에 영향을 주었으며 기본 Windows 제공 코드에 대한 매우 간단한 .NET 래퍼입니다. 많은 Winform 클래스는 이와 같습니다.

다른 점이 있으면이 UI는 자동으로 새로운 운영 체제의 모양과 느낌에 적응하고 다른 프로그램이 아무 것도하지 않고도 다른 프로그램이 작동하는 방식에 적응합니다. 선택을 취소 한 날짜를 표시하지 않으면 틀림없이 엄청난 양의 감각을 가지게됩니다. 달리 네이티브 Windows 코드가 동작하는 방식을 변경하기 위해 할 수있는 일은 없으며 래퍼는 매우 얇습니다. 주로 네이티브 Windows 컨트롤에는 많은 노브가 없기 때문에 주로.

기능이 아닌 버그.

1

많은 기본 운영 체제에 따라 alt text 윈도우 서버. Windows에서 날짜 - 시간 선택기를 나타내는 데 사용하는 기본 컨트롤이 다른 경우 Winforms 응용 프로그램에 표시되는 컨트롤이 다릅니다.

XP에서만 컨트롤이 운영 체제의 영향을 쉽게 받는다는 것을 알 수 있습니다. 기본 테마 인 표준 "cartoony"테마에서 Windows Classic으로 테마를 변경하고 .NET 응용 프로그램을 실행하십시오. 양식 테두리는 둥근 모서리와 만화 같은 인터페이스에서 고전 형식을가집니다.

Windows에서 기본적으로 사용하는 날짜/시간 선택자는 MScomctl.ocx에 있습니다.

이 버전의 Windows에서 변경된 경우 (해당 작업을 수행 한 것으로 확신 함) 풍자가 보일 것입니다. 그리고/또는 그에 따라 다르게 동작합니다.

관련 문제