C#各级控件中,事件响应的顺序试验结果

在进行Windows窗体应用开发中,为了实现界面的布局,难免会用到各种容器,有时候需要根据窗口大小改变,动态调整一些内容的大小,这时候就需要知道各级控件的属性更改顺序及事件响应顺序,否则,计算就可能出错。我利用splitContainer、Panel、chart做了一个试验,记录了窗口改变时,各控件属性变化顺序,以及SizeChanged事件的执行顺序:

1、控件的布置结构:

2、主要代码:

       private void splitContainer1_SizeChanged(object sender, EventArgs e)
        {
            Console.WriteLine("L1:SizeChanged panel1.height=" + panel1.Height.ToString()+" chart1.width="+chart1.Width.ToString());
        }

        private void splitContainer2_SizeChanged(object sender, EventArgs e)
        {
            Console.WriteLine("L2:SizeChanged panel1.height=" + panel1.Height.ToString() + " chart1.width=" + chart1.Width.ToString());
        }

        private void panel1_SizeChanged(object sender, EventArgs e)
        {
            Console.WriteLine("L3:SizeChanged panel1.height="+panel1.Height.ToString() + " chart1.width=" + chart1.Width.ToString());
        }

3、测试记录

进行一次全屏并恢复时的控制台记录:

L3:SizeChanged panel1.height=957 chart1.width=1277

L2:SizeChanged panel1.height=957 chart1.width=1277

L1:SizeChanged panel1.height=957 chart1.width=1277

L3:SizeChanged panel1.height=418 chart1.width=577

L2:SizeChanged panel1.height=418 chart1.width=577

L1:SizeChanged panel1.height=418 chart1.width=577

4、测试结论

在尺寸变化时,先更新各控件尺寸,然后发出尺寸改变事件,内层的先响应,再逐渐往外传递。

 

2021年5月1日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值