GDI: drawline怎么划线在屏幕最前方(实现在panel的范围内画一条线,panel上有若干控件了label,textbox等等)?我想在panel的范围内画一条线,结果是其在panel之上,而在label,textbox之下。我是想把划线在屏幕最前方,即所有控件之上,包括label,textbox。现在的code是: 
                    Graphics g = panel1.CreateGraphics();
                    g.Clear(Color.LightGray);
                    int axisLine = 9 ;
                    g.DrawLine(Pens.Red, axisLine, 0 - 100, axisLine, gbLessonsbox.Height + 100);    请大家给与指教~~~~

解决方案 »

  1.   

    楼主啊,这个可难可难了,即使用api ,不过那样感觉又是大材小用啊。如果你只是想画个线而已,可以用个Label控件,加在panel上,设置宽度为1,背景色为红,这样就是一个直线,你只在代码中控制它的长度、位置、是否显示 ,就行了。
      

  2.   

    如果你画线的位置确定的话,就用1楼说的也可以。如不确定,可以动态的在panel内再加一个宽高为你画线宽高的panel,设置其背景为线的色,最后把控件发送到最上方
    button1.BringToFront();  //将控件放到所有控件最前端
    button1.SendToBack();   //将控件放到所有控件最低端
      

  3.   

    to baiwenyu,libinguest,划线的位置不固定, 我这里的axisLine是个变量,动态变化的。
      

  4.   

    to libinguest, panel上放控件了,如果使用: 
    panel1.BringToFront(); //将控件放到所有控件最前端
    panel1.SendToBack(); //将控件放到所有控件最低端
    这样,前面的label,textbox就看不见了。我只是想划线划在最前面。其它控件位置均不变。
      

  5.   


    几经研究,panel是无法设置为透明的。http://topic.csdn.net/u/20080920/00/B809A57E-F184-4880-997E-A63DF1DC36A9.html继续找本命题的,答案。各路高人给看一下~~~~
      

  6.   

    label 你也可以动态设置属性 top left 值啊,把它的宽度设置为1,也不会盖住其它控件