zoukankan      html  css  js  c++  java
  • 解决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

  • 相关阅读:
    用python将博客园的文章爬取到本地
    2016.7.9
    2016.7.8
    2016.7.7
    2016.7.5
    2016.7.4
    2016.7.3
    2016.7.2
    2016.6.28
    2016.6.27
  • 原文地址:https://www.cnblogs.com/DoNetCShap/p/4210094.html
Copyright © 2011-2022 走看看