第一个说对了.因为Load发生的时候窗体并未显示,等到窗体刷新时就没了.
加载的控件能显示,是因为控件不是图像,它们会在各自的Paint过程中绘制.(具有系统外观的控件是由系统负责绘制的)
在构造函数或Form_Load过程中this.hide会无效,是因为此时窗体并未显示出来,在这之后窗口随时会被重新激活(这中间逻辑蛮复杂的,我也没有研究太懂,主要涉及到SetVisibleCore,啥时候有空了仔细研究下).关于这个,可以考虑采用其它办法.用Google搜索一下"SetVisibleCore 启动时不显示"能找到些资料.但是这个和Graphics绘制没有关系.
这个吧。我认为是Form_Load事件的触发时间的问题吧,应该是Form_Load事件先于其他事件触发,所以你在Form_Load中Hide()时候,窗体本就没显示出来,你在Form_Load中画图的时候,它确实画了。然后Paint的时候可能是覆盖了吧。
个人猜想,没环境,所以没验证过。楼主找资料查下告诉我。。
你可以看看Form的设计文件,那个Form1.Design.cs或者.vb什么的。找下看看。
唉。学艺不精,还边学边往,以前看过一个说明窗体中各个事件调用顺序的文章,看完就忘了。。这毛病啥时候能该。。。
你试试CreateGraphics方法。。。
如
Button1.CreateGraphics();
好像是被窗口上的控件盖住了,你打空间背景设透明看看还有没有线,我以前做过一个作业就是在Form_load上画了坐标,picturebox设透明就能看到窗体上画的坐标了