• 大量界面刷新时手动Dispose也是有必要的


    在winform窗体上拖一个flowLayoutPane,一个Button,项目中再创建一个用户控件UcControl,用户控件上放几十个子控件

    private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    DateTime startTime = DateTime.Now;
    
                    flowLayoutPanel1.Controls.Clear();
                    for (int i = 0; i < Controlcount; i++)
                    {
                        UcControl v = new UcControl();
                        v.Width = 275;
                        v.Height = 120;
                        flowLayoutPanel1.Controls.Add(v);
    
                    }
                    slExecutedTime.Text = (DateTime.Now - startTime).ToString();
                }
                catch (Exception exception)
                {
                    Console.WriteLine(exception);
                    throw;
                }
            }

    使劲点按钮,过一会弹出创建句柄出错。解决办法,加上红色部分就好了,再使劲点也不会出问题。

    private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    DateTime startTime = DateTime.Now;
                    DeleteChilds(flowLayoutPanel1);
                    flowLayoutPanel1.Controls.Clear();
                    for (int i = 0; i < Controlcount; i++)
                    {
                        UcControl v = new UcControl();
                        v.Width = 275;
                        v.Height = 120;
                        flowLayoutPanel1.Controls.Add(v);
    
                    }
                    slExecutedTime.Text = (DateTime.Now - startTime).ToString();
                }
                catch (Exception exception)
                {
                    Console.WriteLine(exception);
                    throw;
                }
            }
    
    
          private void DeleteChilds(Control control)
            {
                while (control.Controls.Count > 0)
                {
                    if (control.Controls[0] != null)
                    {
                        //DeleteChilds(control.Controls[0]);
                        control.Controls[0].Dispose();
                    }
                    
                }
            
            }
     
  • 相关阅读:
    Jquery
    day87-Django创建程序步骤,路由系统和项目执行
    day86-Django安装、cmd控制台操作
    day85-Django初识-自己开发的web框架
    day84-bootstrap
    day83-pymysql操作mysql,pycharm安装pymysql的方法(驱动)
    day82-jQuery-事件、动画、each、data、插件
    day81-jQuery-文档操作
    day80-jQuery-属性操作
    day79-jQuery-文本操作
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/8494582.html
Copyright © 2020-2023  润新知