解决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

时间: 2024-08-28 06:04:58

解决EnableVisualStyles Bug的相关文章

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

今天代码写着写着就莫名闪退了,手机也没有“程序停止运行”的提示,logcat也没有看到蓝色的调用栈log,这样的闪退最是蛋疼了,还好必现.复现几次之后,终于从logcat中看到了一行可疑的log: A/Looper: Could not create epoll instance. errno=24 ,看起来又是在native层闪退了.本文就把这个问题的分析解决过程记录了下来. 方法论 遇见没填过的坑,第一反应就是Google之,果然前几个结果中一个 Stack Overflow的问答 就为这个

解决一bug的流程复盘

听同事说有一个功能不好使了,当时有事,过了一段时间来看看这个bug 解决问题时,看的是老的日志,根据老日志看来看去没有发现问题,觉得很困惑 然后手动执行了一下,发现问题没有重现.与另一个团队的同事沟通下,说是他们那边把代码回退了. 总结:解决问题时,要重现bug,并取最新的日志.从引发问题的最接近的原因开始一步步分析,一层层的排查故障

是否存在未解决的bug

目前在网上,都是使用了听说,这两个字,形容agg,并且从07年开始就没有更新,作为不推荐使用的一种理由. 如下是个人的一些观点: 1)目前在使用的过程中没有发现任何的bug,当然了这里有一篇文章描述内存的,这是一种极端的情况,用户需要自己处理.希望其他人能够提供一个Bug报告,至少可以进行修改

Android开发之一个未解决的bug

使用Activity之间传递数据的时候,出现了一个bug,但是没有找到哪里出错了. 把代码和log都记录下来,以后研究 代码: MainActivity.class 1 package com.example.caradviser; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.app.Activity; 7 import android.content.Intent; 8 import a

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

不清楚Oauth2.0 的 可以查看我前几篇博文 Zuul 为springCloud 微服务框架 单独可以使用 非常简单 可以上网查证 此文只说明如何解决Oauth2.0 和Zuul 包 的冲突 需求:新建一个Oauth2.0 项目 需要在此基础上进行网关分发 选用的框架为Zuul 遇到的问题 是 一旦导入zuul 的所需包 <dependency> <groupId>org.springframework.cloud</groupId> ------ >>

在Android开发中,当按下home键程序会完全退出时,解决这个BUG:

把这段代码贴到 super.onCreate(savedInstanceState);  之后 //remenber process if(!this.isTaskRoot()) { //判断该Activity是不是任务空间的源Activity,“非”也就是说是被系统重新实例化出来 //如果你就放在launcher Activity中话,这里可以直接return了 Intent mainIntent=getIntent(); String action=mainIntent.getAction(

react-natve,Windows系统下配置(解决大部分BUG)

题外:最近沉迷于手机端开发,对于js调用原生颇感兴趣,体验过Apache的cordova后 ,又对 Facebook的react-native引起了兴趣,故此配置过程发一波,因为配置确实是问题百出,让人痛不欲生,希望自己的经历能对大家有些帮助. 开始: 一.首先安装最新的 node 官网:https://nodejs.org/en/ 二.安装Android SDK,并配置好环境变量. 过程略,百度全是,随便搜,必备SDK如图,版本自行匹配. 三.开始配置react-native cmd 命令窗口

Leetcode 还未解决的bug

27. Remove Element val = 1 nums = [1,1,2,3] for i in nums: if i == val: nums.remove(i) a = nums result : val = 1 nums = [1,1,2,3] for i in nums[:]: if i == val: nums.remove(i) a = nums result: 不用remove的解法: class Solution(object): def removeElement(se

移动端上传照片 预览+draw on Canvas demo(解决iOS等设备照片旋转90度的bug)

背景: 本人的一个移动端H5项目,需求如下: 手机相册选取或拍摄照片后在页面上预览 然后绘制在canvas画布上. 这里,我们先看一个demo(http://jsfiddle.net/q3011893/83qfqpk8/embedded/) 操作步骤: 1.点击选择文件,拍摄一张照片,此时"预览:"文字下会显示你刚才拍摄的照片: 2.再点击"draw on Canvas",该按钮下的画布会绘制你刚才拍摄的照片. 正常的结果: 正文: 让input file支持拍照+