我正在使用带有 Visual Studio 2012 的 Windows 7 x64。显示打印对话框会导致应用程序中所有表单中的所有控件失去其视觉样式。我的意思是按钮失去了它们的圆角边缘,变成了 Windows XP 中的矩形。在显示打印对话框后,复选框也会在将鼠标悬停在它们上方时失去其视觉样式。
以下代码行导致问题:
pdlg.ShowDialog();
pdlg 是一个打印对话框。这只发生在一个项目中;使用同一行代码的其他项目可以正常工作。PrintDialog 甚至不必连接到 PrintDocument 即可发生问题(无需触发 BeginPrint/PrintPage 事件)。没有抛出任何错误。我没有在应用程序中将任何首选项保存到磁盘。
我努力了:
- 清洁/重建解决方案
- 删除并重新创建 PrintDocument 控件和 PrintDialog 控件
- 重新启动计算机
- 转换为不同的 .NET Framework 版本
- 以不同用户身份在同一台机器上运行应用程序 -视觉样式保持正确启用
- 在不同的机器上运行应用程序 -视觉样式保持正确启用
- 清空用户的 Temp 目录
- 重命名程序集
- 将应用程序移动到不同的目录
我的猜测是 .NET 以某种方式在内部保存了某些文件或注册表设置,它仅适用于一个应用程序/用户。或者某些缓存或某些东西已损坏。我已经用完了简单的故障排除想法。有没有人见过这个?接下来我应该尝试什么?