欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

winform窗体启动顺序

程序员文章站 2022-06-08 17:42:22
...
        public Form1()
        {
            Console.WriteLine(1);
            InitializeComponent();
            Console.WriteLine(2);
        }
        protected override void OnSizeChanged(EventArgs e)
        {
            Console.WriteLine("开始改变大小");
            base.OnSizeChanged(e);
            Console.WriteLine("改变大小结束");
        }
        protected override void OnResize(EventArgs e)
        {
            Console.WriteLine(3);
            base.OnResize(e);
            Console.WriteLine(4);
        }
        protected override void OnClientSizeChanged(EventArgs e)
        {
            Console.WriteLine(5);
            base.OnClientSizeChanged(e);
            Console.WriteLine(6);
        }
        protected override void CreateHandle()
        {
            Console.WriteLine("开始创建句柄");
            base.CreateHandle();
            Console.WriteLine("创建句柄结束");
        }
        protected override void OnHandleCreated(EventArgs e)
        {
            Console.WriteLine(7);
            base.OnHandleCreated(e);
            Console.WriteLine(8);
        }
        protected override void OnCreateControl()
        {
            Console.WriteLine("开始创建控件");
            base.OnCreateControl();
            Console.WriteLine("创建控件结束");
        }
        protected override void OnLoad(EventArgs e)
        {
            Console.WriteLine(9);
            base.OnLoad(e);
            Console.WriteLine(10);
        }
        protected override void OnVisibleChanged(EventArgs e)
        {
            Console.WriteLine(11);
            base.OnVisibleChanged(e);
            Console.WriteLine(12);
        }
        protected override void OnGotFocus(EventArgs e)
        {
            Console.WriteLine(13);
            base.OnGotFocus(e);
            Console.WriteLine(14);
        }
        protected override void OnActivated(EventArgs e)
        {
            Console.WriteLine(15);
            base.OnActivated(e);
            Console.WriteLine(16);
        }
        protected override void OnShown(EventArgs e)
        {
            Console.WriteLine(17);
            base.OnShown(e);
            Console.WriteLine(18);
        }
        protected override void OnPaint(PaintEventArgs e)
        {
            Console.WriteLine("开始绘图");
            base.OnPaint(e);
            Console.WriteLine("绘图结束");
        }

        protected override void OnLostFocus(EventArgs e)
        {
            Console.WriteLine(19);
            base.OnLostFocus(e);
            Console.WriteLine(20);
        }
        protected override void OnClosing(CancelEventArgs e)
        {
            Console.WriteLine(21);
            base.OnClosing(e);
            Console.WriteLine(22);
        }
        protected override void OnFormClosing(FormClosingEventArgs e)
        {
            Console.WriteLine(23);
            base.OnFormClosing(e);
            Console.WriteLine(24);
        }
        protected override void OnClosed(EventArgs e)
        {
            Console.WriteLine(25);
            base.OnClosed(e);
            Console.WriteLine(26);
        }
        protected override void OnFormClosed(FormClosedEventArgs e)
        {
            Console.WriteLine(27);
            base.OnFormClosed(e);
            Console.WriteLine(28);
        }
        protected override void OnDeactivate(EventArgs e)
        {
            Console.WriteLine(29);
            base.OnDeactivate(e);
            Console.WriteLine(30);
        }

输出结果:1——开始改变大小——3——4——改变大小结束——5——6
——5——6——2——开始创建句柄——7——8——创建句柄结束
——开始创建控件——9——10——创建控件结束
——11——12——开始绘图——绘图结束——13——14——15——16——17——18
21——22——23——24——25——26——27——28——29——30——19——20

官方地址:https://docs.microsoft.com/zh-cn/dotnet/framework/winforms/order-of-events-in-windows-forms?redirectedfrom=MSDN

相关标签: C#笔记