this.SetStyle(ControlStyles.DoubleBuffer | 
      ControlStyles.UserPaint | 
      ControlStyles.AllPaintingInWmPaint, 
      true); 函数的参数为什么要用"|", 第一个参数是什么意思? 

解决方案 »

  1.   

    ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint
    相当于 
      00100000000000000 | 00000000000000010 | 00000100000000000 = 00100100000000010;
    看看ControlStyles的定义
      

  2.   

    因为这个是按位组合的,|表示这几个标志位都为true;DoubleBuffer是使用双缓存,即绘制的内容先写道一个缓存中,再输出到屏幕上,好处是可以避免刷新时闪烁等问题
      

  3.   

    ControlStyles应该是有flagsattributes的标识的一个枚举,加上这个意思是这些既DoubleBuffer ,又UserPaint,还AllPaintingInWmPaint这三个合在一起,你用或运算一下,出来的结果应该是00100100000000010,加上flags特性的枚举,clr会把这个拆分成三个,也就是你写出来的那三个,然后分别对应每一个这里面,任何一种组合都不可能和某一个枚举重复,也就是只要是组合,clr都能把它认为是组合,而不可能和某一个枚举重复,认为是那某一个枚举
      

  4.   

    学习,程序员日记 [url]http://www.ideaext.com[url] 欢迎交流
      

  5.   

    "|"是一个运算符 实际的参数只有2个  由","区分的
    你把ControlStyles的枚举看看 再运算一下就明白了