黑马程序员技术交流社区

标题: 在label控件中画线问题 [打印本页]

作者: @雪飞鸿    时间: 2014-4-14 18:06
标题: 在label控件中画线问题
本帖最后由 @雪飞鸿 于 2014-4-15 16:23 编辑

Pen pen = new Pen(Color.Teal, 2);
            Point po1 = new Point(10, 15);
            Point po2 = new Point(175, 15);
            Graphics drawLine = label1.CreateGraphics();
            drawLine.DrawLine(pen, po1, po2);
这段代码执行之后label控件中并没有画出一条直线,求解???
作者: mdb    时间: 2014-4-14 22:10
把label1的AutoSize属性设置为false,然后再把label1的宽和高拉大点就看到了....
作者: @雪飞鸿    时间: 2014-4-15 09:21
mdb 发表于 2014-4-14 22:10
把label1的AutoSize属性设置为false,然后再把label1的宽和高拉大点就看到了....

把这段代码放到form_load事件中则不会起作用,用按钮单击事件触发则会划出一条直线,这是怎么回事?
作者: mdb    时间: 2014-4-15 14:29
@雪飞鸿 发表于 2014-4-15 09:21
把这段代码放到form_load事件中则不会起作用,用按钮单击事件触发则会划出一条直线,这是怎么回事? ...

应该是事件的顺序问题,form_load发生的时候窗体还没被绘制出来,而LABEL1虽然被画出直线但是看不到,等窗口显示的时候控件又进行了重绘了,所以LABEL会显示最初的状态,因此也看不到了...放在BUTTON里面的时候LABEL已经显示出来了,所以再画上去的时候就看到直线了
作者: @雪飞鸿    时间: 2014-4-15 16:21
mdb 发表于 2014-4-15 14:29
应该是事件的顺序问题,form_load发生的时候窗体还没被绘制出来,而LABEL1虽然被画出直线但是看不到,等 ...

嗯,把代码放到shown事件中就可以了,谢谢!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2