解决EnableVisualStyles Bug
一位朋友碰到了一个WinForm的问题,在网上搜了一通,没找到能解决问题的方案,
正好我以前以碰到过,在这里把解决方案呈上,以便有遇到此问题的朋友能有帮助。
问题是这样的,当启用了虚拟样式后,设置好的TeeView 的图标就不见了,代码如下:
Application.EnableVisualStyles();
在Debug模式生成的程序没问题,但用Release模式生成则不见了。
在以下地址有一个方法,但不一定能解决问题,
http://www.codeproject.com/KB/bugs/EnableVisualStylesBug.aspx?msg=984714
方法是在调用Application.EnableVisualStyles(); 后再加入代码:Application.DoEvents(); 网上有的朋友说有效,我当时也试过这个方法,没效,不知道是什么原因,VS2005出来时有这个Bug, VS2008出来时问题依旧。
闲话少说,不能因为不知道原因就不解决问题吧。
方法超简单,先把 treeView1.DrawMode 设为 TreeViewDrawMode.OwnerDrawAll,然后再响应一下DrawNode事件。
treeView1.DrawMode = TreeViewDrawMode.OwnerDrawAll;
treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode);
事件方法是:
void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
e.DrawDefault = true;
if (e.Node.Bounds.X > 10 && this.treeView1.ImageList != null && this.treeView1.ImageList.Images.Count > e.Node.ImageIndex)
{
Image img = this.treeView1.ImageList.Images[e.Node.ImageIndex];
if (img != null)
{
e.Graphics.DrawImage(img, e.Node.Bounds.X - 19, e.Node.Bounds.Y);
}
}
}
引用: http://www.cnblogs.com/roy/archive/2010/04/02/1703379.html
本文来自博客园,作者:jevan,转载请注明原文链接:https://www.cnblogs.com/DoNetCShap/p/4210094.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端