Windows 10 Creators更新后,DateTimePicker出现乱码

使用VS 2015,C#,Winforms构建的应用程序,使用DateTimePicker Windows控件,在将计算机更新到Windows Creators Update后,文本会出现乱码。

乱码的文字图片

有没有其他人遇到这个或有任何建议的工作?

Windows 10的6月累积更新(KB 4022725)包含更新的COMCTL32.DLL,其中包含针对此问题的修复程序。 安装更新后,文件版本应为5.82.15063.413。

https://social.msdn.microsoft.com/Forums/en-US/4cf03067-46c4-4962-af8c-f4b1483e88ba/date-time-picker-garbled-after-windows-10-creators-update?forum=windowsgeneraldevelopmentissues

在显示包含DateTimePicker的Form之前,在WinForms应用程序中启用Visual Styles。

Application.EnableVisualStyles(); //Form1 contains the DateTimePicker component Application.Run(new Form1()); 

你有高DPI显示器吗? 即使你不这样做,更新的dpi缩放也很有可能在这里出错。 如果是这样,您可以通过在项目清单文件的dpiAwaredpiAwareness值中设置值来“修复”这个,如下所述:

Windows 10 Creators更新中桌面应用程序的高DPI扩展性改进

我自己还没有这么做,所以现在我只能指出你在哪里看,而不是指出你的情况应该是什么样的正确值。

即使这不是您的问题,您也可能需要花几分钟检查您的应用在高DPI情况下处理得好。 让你的公司为你买一台漂亮的新显示器也是一个不错的借口:)

启用XP Visual Styles为我修复了它。

因此,Windows 10 1703引入了一些新的挑战,其中包括这种奇怪的拒绝在DateTimePicker控件中显示日期,除非您勾选应用程序的“启用XP视觉样式”框(或以编程方式执行)。 这个调整确实解决了日期再现问题,但现在其他控件,如下拉框,下拉列表文本框和按钮变得扁平和沉闷。 不好。 我们需要的是一个真正的修复,它使“XP视觉风格”变得不必要,或者是Windows Forms编程的出路,所以不支持有趣吗?

我今天也遇到过这个。 我的datetimepicker非常随机地呈现,但从未加入过。 我将此作为一种解决方法:我的环境是VS2015,.net 3.5和winforms我的设置是Surface Pro 3,带有新的docker和2个外部显示器res 2560×1440并且缩放100%。 将app.manifest添加到我的项目中,因为我以前没有。 将dpiAware添加到app.manifest是这样的系统:

   true/System   

我还在表单上将AutoScaleMode设置为None(但是在Inherited中获得了大致相同的结果)。 dpiAware似乎有所帮助(但不是100%稳定)。 这在运行已编译的应用程序时有效,但在从Visual Studio进行调试时不起作用。 然后我只得到一个句点(。),这是我的日期分隔符号。

在运行已编译的exe时应用解决方法 后更新到创建者更新 后 的datetimepicker示例

如果无法将应用程序更新到.net 4.7,这可能会有所帮助

因此,我们最终删除了清单文件,现在控件正确呈现。 奇怪的是,只包含一个带有版本和名称的assemblyIdentity标签的新清单文件会导致此窗口控件发生故障。 我意识到,对于其他人来说,删除清单可能不是一种选择,但是,这已经解决了我们的问题。

我们收到了同样的问题。 VB.NET VS 2012 .NET 4.5。 datetimepicker搞砸了。 我也发布了这个

https://connect.microsoft.com/VisualStudio/feedback/details/3129203/date-in-datetime-of-mfc-application-is-getting-cropped-in-win10-redstone2-build-15055

我在这里和其他地方尝试了大多数建议,包括清单更改,.NET 4.7等。但是,我的设置中需要的另一个更改是增加控件本身的CalendarFont大小。

我系统上的默认值是7.875。 将其更改为10pt更正了显示问题(将其更改为略低的值可改善显示但未更正显示)。

免责声明:这尚未经过深入测试,可能会破坏其他情况。 此信息旨在帮助您找到最终解决方案。

像其他人建议的那样,将这一行放到你的主要表单中,它对我有用:

 Application.EnableVisualStyles() 

您还可以取消注释app.manifest底部的行。 这取决于项目。

此问题的修复程序计划包含在Windows 10的6月累积更新中。

这是COMCTL32.DLL版本5中实现的日期时间选择器控件中的错误。在不久的将来应该有针对此问题的修复程序。

COMCTL32.DLL版本6中实现的日期时间选取器控件似乎不受此问题的影响。