.Net WinForm 启用XP效果的问题
在 Windows XP 及后续版本中, .Net Framework 1.0 和 1.1 下对 .Net WinForm 启用 XP Style,单纯的调用 Application.EnableVisualStyles(); 会有很多问题,尤其是 Toolbar 图标不能正确绘制的问题尤为明显。
针对这个 Framework 的 bug,一般有下面三种方法来解决:
在 Application.EnableVisualStyles() 执行后直接执行一次 Application.EnableVisualStyles() 如:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.DoEvents();
Application.Run(new Form());
} 启用一个线程来运行程序:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
new Thread(new ThreadStart(Runner)).Start();
}
static void Runner()
{
Application.Run(new Form());
} 启用 .manifest :在应用程序目录下启用 .manifest 文件。
Risisi Reader 开始用的是第一种,但运行过程中不时的会抛出系统异常,然后就直接推出程序。最开始没有意识到是启用XP效果带来的问题,跟了一下跟不出结果,索性查看了异常的详细信息,如下:
System.Runtime.InteropServices.SEHException: 外部组件发生异常。
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.ComponentManager.System.Windows.Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
......
Google 了一下 System.Runtime.InteropServices.SEHException,结论是启用XP效果措施不当的问题。立即改为第三种,在应用程序目录下加了一个 Risisi.Reader.exe.manifest :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Risisi.Reader"
type="win32" />
<description>Risisi.Reader</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*" />
</dependentAssembly>
</dependency>
</assembly>
问题立刻解决。
不过不要忘了给控件的属性:FlatStyle = System
.Net Framework 2.0 中没有具体测试,不过 2.0 中 WinForm 的界面都自动处理成了 Office 11 的效果,应该没有这个bug了吧。大约。
转:http://blog.csdn.net/rambler8139/archive/2006/07/20/947867.aspx
.Net WinForm 启用XP效果的问题相关推荐
- [XenDesktop5.5]+Hyper-V上的Win7+VDA无法启用Aero效果
XD5.5增加了对Win7 Desktop的Aero效果的支持,但是我们会发现安装在Hyper-V的Win7就无法启用Aero效果. 这是XD5.5的一个已知的问题,这是因为在Hyper-V的Win7 ...
- winform 实现动画效果。
网页中我们借助jquery等框架可以实现很炫的动画效果,故想在winform中也实现同样的效果之一:滑入效果. 借助这个类即可: public static class Animation { ...
- C# winform textbox 水印效果
在使用 C# 的 TextBox 控件时,有时候会有以下需求:在用户没有输入文字时,TextBox 有文字提示,如下图. 但是 C# 自带的 TextBox 控件貌似没有这个属性,于是 Google ...
- 使用 Windows XP 的外观风格
目录 简介 ComCtl32.dll 版本 6 外观风格任务 在未使用第三方扩展的应用程序中使用 ComCtl32.dll 版本 6 在使用扩展.插件或进程内运行的 DLL 的应用程序中使用 ComC ...
- 电脑市场装机版Ghost XP SP2 v2.0 [修正版]
∷软件简介∷ 电脑市场装机版V2.0[修正版] 697MB MD5: C27118E85BAD8DB6E13C810123FCB479 698MB 未修正前MD5: 9C0BF7 ...
- 电脑市场Ghost XP SP2纯净版v3.0
〓〓〓〓〓 电脑市场Ghost XP SP2纯净版v3.0 〓〓〓〓〓 文件: 电脑市场GhostXP纯净版V3.0.iso 大小: 716279808 字节(683MB) 时间: 2008年3月5日 ...
- 电脑市场Ghost XP SP2装机版v3.0
〓〓〓〓〓〓〓〓 电脑市场Ghost XP SP2装机版v3.0 〓〓〓〓〓〓〓〓〓 文件:电脑市场GhostXP装机版v3.0.iso 大小: 707483648 字节(674Mb) 时间: 200 ...
- html5实现ios长按图标后进入图标排序及删除功能的效果
2019独角兽企业重金招聘Python工程师标准>>> html5实现ios长按图标后进入图标排序及删除功能的效果 我们知道在ios(国产定制安卓系统基本都有)设备上按下图标,图标就 ...
- css3 仿aero,让Qt支持Win7的Aero和毛玻璃效果
Qt5增加了许多特性,其中 Qt Windows Extras 模块就增加了对Win7 Aero 效果的支持. 官网的介绍如下: Qt Windows Extras provide classes a ...
最新文章
- 一个小度科技就估值200亿,百度现在被低估了吗?
- 使用php开发,基于swoole扩展开发的工具 swoole-crontab
- 内卷时代的晋升述职要“想明白”和“讲清楚”
- python编程制作接金币游戏_pygame学习笔记(6):完成一个简单的游戏
- JavaScript 预解析机制
- 12 个顶级 Bug 跟踪工具
- Buy Tickets POJ - 2828 思维+线段树
- 怎么批量查找关键词-批量查找关键词软件工具
- 令牌桶 java_服务限流(自定义注解令牌桶算法)
- Matlab画图线型、符号及颜色设置
- python手工打码_python云打码
- Windows安全中心打开空白
- seaborn关联图表之折线图和散点图
- DBA-数据库管理员
- 适合于图像处理方向的SCI期刊杂志列表【部分转载】
- 一个读者大佬精心总结的阿里、腾讯、宇宙条大厂 Offer 面经和硬核面试攻略
- 计算机应用基础演示文稿内容,计算机应用基础(PowerPoint 2003电子演示文稿系统)...
- 浅谈阿里云混合云新一代运维平台演进与实践
- 苹果人机交互指南_苹果人机界面设计指南的10个见解
- 如何写一个一天爬取 100 万张网页的爬虫
热门文章
- Word打开时显示*模板*,删除模板
- Django通过一个下拉框确定另外一个下拉框的值,并关联起来
- unicode html转义字符,HTML转义字符 Unicode和CSS伪类介绍(示例代码)
- [蓝桥杯][2018年第九届真题]全球变暖
- cass绘制围墙lisp_CASS中用LISP完成高程值的可视化处理
- 一次非常有意思的SQL优化经历:从30248.271s到0.001s
- 主板定制 如何定制主板这些流程要知道
- Jenkins持续集成环境, 如何自定义 maven repositories
- [转]UpdatePanel的用法详解
- android studio 更改背景和设置字体大小