一位朋友碰到了一个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

解决EnableVisualStyles Bug的更多相关文章

  1. 在用easyui中做CRUD功能时,当删除一行或多行数据后再点击修改会提示你选中了多行,如何解决这个bug了?

    在用easyui中做CRUD功能时,当删除一行或多行数据后再点击修改会提示你选中了多行,如何解决这个bug了? 在删除成功后,加上这句话就可以了:$("#dg").datagrid ...

  2. 从 A/Looper: Could not create epoll instance. errno=24 错误浅谈解决各种 bug 的思路

    今天代码写着写着就莫名闪退了,手机也没有“程序停止运行”的提示,logcat也没有看到蓝色的调用栈log,这样的闪退最是蛋疼了,还好必现.复现几次之后,终于从logcat中看到了一行可疑的log: A ...

  3. JDFS:一款分布式文件管理实用程序第二篇(更新升级、解决一些bug)

    一 前言 本文是<JDFS:一款分布式文件管理实用程序>系列博客的第二篇,在上一篇博客中,笔者向读者展示了JDFS的核心功能部分,包括:服务端与客户端部分的上传.下载功能的实现,epoll ...

  4. linux centos7安装phpMyAdmin详解,以及解决各种bug问题

    使用php和mysql开发网站的话,phpmyadmin和navicat是目前非常好的mysql管理工具,但是phpmyadmin最主要是免费开源,目前很多集成的开发环境都会自带phpmyadmin, ...

  5. Ubuntu16.04 faster-rcnn+caffe+gpu运行环境配置以及解决各种bug

    https://blog.csdn.net/flygeda/article/details/78638824 本文主要是对近期参考的网上各位大神的博客的总结,其中,从安装系统到跑通程序过程中遇到的各种 ...

  6. Android开发之一个未解决的bug

    使用Activity之间传递数据的时候,出现了一个bug,但是没有找到哪里出错了. 把代码和log都记录下来,以后研究 代码: MainActivity.class package com.examp ...

  7. 解决一bug的流程复盘

    听同事说有一个功能不好使了,当时有事,过了一段时间来看看这个bug 解决问题时,看的是老的日志,根据老日志看来看去没有发现问题,觉得很困惑 然后手动执行了一下,发现问题没有重现.与另一个团队的同事沟通 ...

  8. Oauth2.0 整合springCloud的Zuul 解决关键BUG 报错信息:Principal must not be null

    不清楚Oauth2.0 的 可以查看我前几篇博文 2018.4.8 补充 我出现这个原因:是我在资源服务器使用了 如下图所示 Principal Oauth2.0 提供的获取用户信息的方法 使其找到相 ...

  9. adminLte 解决菜单栏 bug

    <ul class="sidebar-menu" data-widget="tree">    功能菜单 点击 不隐藏第三级 子菜单....在 ad ...

随机推荐

  1. java_线程安全-service

    package com.demo.test; import java.util.Collections; import java.util.HashMap; import java.util.Map; ...

  2. 更改gps.conf来加快GPS搜星速度

    国内NTP ServerNTP全称是Network Time Protocol,是用来让计算机之间实现时间同步的协议,而发布这种校对时间的服务器,就是NTP Server!一般来说客户端与服务器之间的 ...

  3. http协议Authorization认证方式在Android开发中的使用

    我们都知道,http协议是一种无状态协议,在Web开发中,由于Session和Cookie的使用,使得服务端可以知道客户端的连接状态,即用户只需要在浏览器上登录一次,只要浏览器没有关闭,后续所有的请求 ...

  4. Creating a Mono 3 RPM on CentOS

    Creating a Mono 3 RPM on CentOS A quick guide to creating an rpm of mono 3 from source, starting wit ...

  5. python(3)-函数动态参数

    先来看一段代码 def show(*arg): print(arg, type(arg)) if __name__ == "__main__": show(1) show(1,2, ...

  6. mysql root给其它用户授权问题

    今天登录mysql,给其它用户授权遇到问题 mysql> grant all privileges on testdb.* to 'dbuser'@'10.4.14.14' identified ...

  7. 如果将WCF服务发布为rest模式

    WCF是支持多种协议的,其中basicHttpBinding是基础协议绑定,类似于传统的webservice. 如果要将WCF发布成rest,绑定协议要使用webHttpBinding,并且在终结点的 ...

  8. LAMP平台搭建详解

    准备工作 安装编译工具 # yum -y install gcc # yum -y install gcc-c++ 如果系统之前已经安装有rpm包的mysql和apache,那么可以: #servic ...

  9. poj 2186 强连通分支 和 spfa

    思路: 建图时,分别建正向图edge和转置图T.用正向图edge来DFS,找出第一个被发现的强连通分支(如果该图存在题目要求的点,那么一定就是第一个被发现的).然后用spfa跑转置图T,判断被发现的点 ...

  10. Mac环境下svn的使用(转载)

    在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还 ...