zoukankan      html  css  js  c++  java
  • 大量界面刷新时手动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();
                    }
                    
                }
            
            }
     
  • 相关阅读:
    unity导弹算法 预计目标点
    unity编辑器xml数据库插件
    简单Unity时间架构设计(克洛诺斯之匙)
    Unity武器系统的优化
    暴风魔镜安卓手柄输入检测接口
    基于unity的飞行模拟设计
    C#打印日志的小技巧
    启示录
    关于击杀与辅助奖励的方案
    unity抛物线,平均速度下的运动轨迹
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/8494582.html
Copyright © 2011-2022 走看看