none
WinForm下TreeView闪烁问题还是没解决! RRS feed

  • 问题

  • 先前用的是VS2005,论坛朋友建议我用反射设置treeView的双缓冲属性或是直接使用VS2010,两种方法我都用了,没能解决问题。

    重新把问题描述一下:

    环境:VC#2010 学习版 WinForm windows7

    重现问题:

    VC#2010里往窗口上托一个treeView控件,设计器里添加几个根结点,每个根结点下随便放两个子节点,OK 没别的代码了。

    编译后运行程序,在treeView的节点上面用鼠标以弧线形移动,多移几次,闪烁就出现了,很明显。

    我曾在VS2005中去掉Application.EnableVisualStyles(),则treeView不会出现上述闪烁现像。但其它控件外观会面目全非。

    请问如何解决这个问题?

     

    2012年1月31日 2:45

答案

  • 感谢各位大虾回复,该问题终于水落石出:

    原来是我的windows7采用了仿XP风格主题的原因,我把主题风格变成window7后,treeView节点就不会闪烁啦!

    • 已标记为答案 Win32FanEx 2012年1月31日 6:43
    2012年1月31日 6:43

全部回复

  • Sorry, 請問「节点上面用鼠标以弧线形移动」指的是什麼呢?
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2012年1月31日 3:04
  • 就是用鼠标在节点上面来回左右的晃
    2012年1月31日 3:39
  • 請問您的資料粉多嗎? 或是控制項很多嗎?

    請問您的PC配備為何呢?

    因為小弟用個簡單的範例來測試,並沒有出現您所說的現象呢!


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2012年1月31日 3:49
  • 感谢回复

    就是我所说那个简单示例,全部是在设计器里添的,没有其它任何手写代码。

    我PC除了没有独立显卡外,其余各项性能都是中等水平。CPU双核 2G内存 显示器为三星19宽屏LED 硬盘500G

    现在已经明确我机器上闪烁是这样发生的:

    第一个条件:节点下包含子节点,如果没子节点,不闪。

    第二个条件:鼠标纵向移动不会引发闪烁。用鼠标在节点上横向来回移动,节点开始闪烁。

    一会我从朋友机器上再测一下。

    2012年1月31日 4:01
  • 朋友们都在忙。。有台迷你笔记本不用,在上面测了下,这小家伙打开个资源管理器都慢,但运行那个示例程序,TreeView节点的闪烁居然很轻微。看来我电脑的显示芯片或者是驱动啥的不太好。

    相信在你们机器上基本上就没闪烁了。

     

    2012年1月31日 4:16
  • 但和VS也并非完全无关,如何解释Application.EnableVisualStyles去掉后就完全没闪烁了呢?
    2012年1月31日 4:19
  • 請問您顯卡設定的色彩是設定成高彩(16位元)嗎?

    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2012年1月31日 5:31
  • 感谢各位大虾回复,该问题终于水落石出:

    原来是我的windows7采用了仿XP风格主题的原因,我把主题风格变成window7后,treeView节点就不会闪烁啦!

    • 已标记为答案 Win32FanEx 2012年1月31日 6:43
    2012年1月31日 6:43