A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© @雪飞鸿 中级黑马   /  2014-4-14 18:06  /  1134 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 @雪飞鸿 于 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控件中并没有画出一条直线,求解???

评分

参与人数 1技术分 +1 收起 理由
黑妞~ + 1

查看全部评分

4 个回复

倒序浏览
把label1的AutoSize属性设置为false,然后再把label1的宽和高拉大点就看到了....
回复 使用道具 举报
mdb 发表于 2014-4-14 22:10
把label1的AutoSize属性设置为false,然后再把label1的宽和高拉大点就看到了....

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

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

嗯,把代码放到shown事件中就可以了,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马