Windows 10 Creators Update において、DateTimePicker コントロールの表示や入力が正しく機能しない場合がある

こんにちは、Platform SDK (Windows SDK) サポートチームです。
今回は、Windows 10 Creators Update において、DateTimePicker コントロールで確認されている問題についてご案内します。

 

現象

Windows 10 Creators Update において、DateTimePicker コントロールの年月日の入力および表示が正しく機能しない現象が確認されています。
具体的には以下 (A)、(B)、(C) いずれかの条件で DateTimePicker コントロールを使用した際に発生する場合があります。

(A)Win32 の場合、date and time picker controls
(B)MFC の場合、CDateTimeCtrl
(C)Windows フォーム アプリケーションの場合、DateTimePicker

それぞれのクラスについては以下 MSDN ドキュメントをご参照ください。

About Date and Time Picker Controls
< https://msdn.microsoft.com/en-us/library/windows/desktop/bb761726.aspx >

CDateTimeCtrl
< https://msdn.microsoft.com/ja-jp/library/57f46yyw.aspx >

DateTimePicker
< https://msdn.microsoft.com/ja-jp/library/system.windows.forms.datetimepicker.aspx >

現象の一例として、Windows 10 Creators Update とそれ以外の OS (Windows 10 Anniversary Update) で、MFC アプリケーションを実行した場合の、DateTimePicker コントロールの表示内容のスクリーンショットを掲載します。

・Windows 10 Anniversary Update の実行結果 (正常に表示されている状態)

正常に表示されている状態
・Windows 10 Creators Update の実行結果 (問題が発生している状態)

問題が発生している状態

 

原因

Windows 10 Creators Update に含まれる、DateTimePicker コントロールの不具合が原因です。

DateTimePicker コントロールは、コモンコントロールと呼ばれるコントロール群に含まれています。
コモンコントロールには、バージョン 5 とバージョン 6 が用意されていますが、バージョン 5 の DateTimePicker コントロールに不具合が確認されています。
なお、コモンコントロールのバージョン 5 は、アプリケーションのマニフェストなどで、Visual Style が無効にされている場合に使用されます。

 

回避策

本現象は、以下の KB4022725 の更新プログラムにより修正されました。
KB4022725 の更新プログラムは、Windows Update により自動的にダウンロードされ、インストールされます。

June 13, 2017—KB4022725 (OS Build 15063.413 and 15063.414)
< https://support.microsoft.com/en-us/help/4022725/windows-10-update-kb4022725>

KB4022725 の更新プログラムのスタンドアロン パッケージを入手するには、下記 URL から Microsoft Update カタログ Web サイトにアクセスし、[検索の開始] ボックスに “KB4022725” と入力して [検索] ボタンをクリックします。
表示された一覧から、ダウンロードする更新プログラムを選択して [追加] をクリックし、ダウンロード バスケットに追加します。
最後に [バスケットの表示] をクリックし、選択した更新プログラムを [ダウンロード] ボタンからダウンロードして、KB4022725 の更新プログラムをご入手ください。

Microsoft Update カタログ
< https://catalog.update.microsoft.com/v7/site/Home.aspx >

なお、下記 URL にて、Microsoft Update (Windows Update) カタログから更新プログラムをダウンロードする手順が紹介されていますので、あわせてご確認ください。

Windows Update カタログからドライバーや修正プログラムを含む更新プログラムをダウンロードする方法
< https://support.microsoft.com/ja-jp/help/323166/how-to-download-updates-that-include-drivers-and-hotfixes-from-the-windows-update-catalog >

 

なお、KB4022725 を適用する以外の回避策としては、以下が確認されています。

Visual Style を有効にして、コモンコントロールのバージョン 6 を使用することで、現象が回避されます。
具体的にはそれぞれのアプリケーションで以下の操作を実施し、Visual Style を有効にします。

[Win32、MFC などのアンマネージ アプリケーションの場合]
Visual Style を有効にするマニフェストをアプリケーションに追加します。
英語表記となりますが、マニフェストの内容および追加方法については以下 MSDN ドキュメントをご参考ください。

Enabling Visual Styles
< https://msdn.microsoft.com/en-us/library/windows/desktop/bb773175.aspx >

[Windows フォーム アプリケーションの場合]
・ Visual Basic プロジェクトの場合
プロジェクトのプロパティを開き、[アプリケーション]タブにある [XP Visual スタイルを有効にする] のチェックをオンにします。

・ C# プロジェクトの場合
Program.cs の Programクラスにある Mainメソッドで Application.EnableVisualStyles() を実行します。

なお、Visual Basic や C# の場合、Visual Studio の新規作成からプロジェクトを作成した場合、Visual Style は通常有効となっていますので本現象は発生しません。

 

更新履歴

– 2017/06/13
[原因] セクションを更新し、[回避策] セクションに更新プログラム KB4022725 の情報を記載しました。