如题,我晕了
我一直以为是Load
但是今天发现Paint无法获取Load中进行的操作

解决方案 »

  1.   

    先加载paint事件,再执行load事件.
    还有:把MessageBox消息框写在两个事件下.
    看看那个先弹出来就知道了.
      

  2.   

    实验了一下:paint事件发生在前面,而且只要有操作就一直在进行!
      

  3.   

    up  我刚试验了下是先load??ls列为谁能贴出试验代码,菜鸟学习我试验的
    public string d = "";
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                d = "gbshsghs";
                MessageBox.Show("vv");
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                MessageBox.Show(d);
                MessageBox.Show("dd");
            }
      

  4.   

    就你写的方法,你没有看出那个先执行吗?为了好区分,你把值初始化为abc吧
      

  5.   

    public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }        private void Form2_Load(object sender, EventArgs e)
            {
                MessageBox.Show("a");
            }        private void Form2_Paint(object sender, PaintEventArgs e)
            {
                MessageBox.Show("b");
            }
        }
    先a后b
    另外Paint事件是窗体重绘事件,最小化在还原又会messagebox一次
      

  6.   

    应该是先加载窗体(Load)然后重绘(Paint),反过来的话就是先重绘再加载,但是连窗体都没加载,又何来重绘一说?
      

  7.   

    感谢大侠!,我都把值初始化为def了,但还是先load,
    public string d = "aaa";
            private void Form1_Paint(object sender, PaintEventArgs e)
            {
                d = "gbshsghs";
                MessageBox.Show(d);          
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                MessageBox.Show(d);
            }  先弹出的是 “aaa”
      

  8.   

    Load事件在窗体第一次显示之前发生,而Paint事件是在窗体需要绘制时发生,没有显示需要绘制吗?想想也知道哪个先发生了。
      

  9.   

    Load 仅发生一次, 
    Paint 每当窗体需要重绘的时候就发生, OnPaint 是响应底层 WM_PAINT 消息的, 所有控件都有这个事件,包括窗体
    Load 是窗体才有的,在第一次显示前触发代码依赖这两个事件的次序,我觉得不保险