有两个label控件,一个是那个框框label1,一个是上面那条线label2,把label2的height设为1,就成了一条线
把label1的backcolor设为透明,第二条线是画的。结果显示,label2没有穿过label1,而画的那条直线穿过了laebel1
请问,
1:这是什么原因?
2:或者不问原因,像这类情况,死记硬背,记住就行了,你们是不是这样学习的?

解决方案 »

  1.   

    就是控件的层次问题,你的label2是在label1的上一层,所以没有被label1遮挡,那条线是你画在Form上的,是在最下层,所以被label1遮挡了。
    你右键label2,把它下移一层;或者右键label1,把它置于顶层,就可以了。
      

  2.   

    请问在代码中生成的label,如何在代码中让控件置于顶层、下移一层
      

  3.   

    代码中,label2.UseVisualStyleBackColor = true;
      

  4.   

    报:label不包括UseVisualStyleBackColor定义
      

  5.   

    这个试了试,好像不是解决办法,你试试这样吧 label2.BringToFront()。参考http://wenku.baidu.com/view/fbe6fed73186bceb19e8bb20.html
      

  6.   

    BringToFront(); 是可以的
    我测试过,先生成完要置顶的label1,然后label1.BringToFront(); 
      

  7.   

    好像先生成完要置顶的label1,就无需label1.BringToFront();了,自然就在上面了,我试了好像是这样的
      

  8.   

    总之要置顶是在最后调用label1.BringToFront();
    前面调用完事再最顶,但是有新的控件放上去,新的控件又在最顶了
    因为系统默认的是后放上去的控件在最顶层,不信你自己拖控件看,最后拖上去的在最顶上