大量界面刷新时手动Dispose也是有必要的
在winform窗体上拖一个flowLayoutPane,一个Button,项目中再创建一个用户控件UcControl,用户控件上放几十个子控件
private void button1_Click(object sender, EventArgs e)
{
try
{
DateTime startTime = DateTime.Now; flowLayoutPanel1.Controls.Clear();
for (int i = ; i < Controlcount; i++)
{
UcControl v = new UcControl();
v.Width = ;
v.Height = ;
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 = ; i < Controlcount; i++)
{
UcControl v = new UcControl();
v.Width = ;
v.Height = ;
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();
}
}
}
大量界面刷新时手动Dispose也是有必要的的更多相关文章
- Swing界面刷新问题(转)
在Java Swing编程中,往往会遇到需要动态刷新界面的时候,例如动态刷新JLabel的文本,JTextField里的文本等等.但是往往却没有达到我们预期的效果,我相信很多朋友都遇到过本文将要说的这 ...
- ASP.NET 使用Session,避免用户F5刷新时重复提交(转)
1.使用Session,避免用户重复提交(F5刷新时) 0.起因 当用户上传文件后F5刷新浏览器会导致文件的重复提交和相关程序的重复执行. 1.实现原理 由于刷新提 ...
- react+antd分页 实现分页及页面刷新时回到刷新前的page
antd框架地址:https://ant.design/index-cn 利用antdUI框架做了个分页,其他功能都没问题,但是页面跳转后刷新会回到第一页,经过学习,在组件里增加了hash值,详情请看 ...
- vue常见问题处理 -- 页面刷新时,如何保持原有vuex中的state信息
一.页面刷新时,如何保持原有vuex中的state信息 页面刷新后,原有的 vuex 中的 state 会发生改变,如果在页面刷新之前,可以将 state 信息保存,页面重新加载时,再将该值赋给 st ...
- Android界面刷新之invalidate与postInvalidate的区别
Android的invalidate与postInvalidate都是用来刷新界面的. 在UI主线程中,用invalidate():本质是调用View的onDraw()绘制. 主线程之外,用postI ...
- sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback
sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback在sharepoint 2010中,如果当前页面的篇幅 ...
- Android之界面刷新(invalidate和postInvalidate使用)
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用. Android提供了Inva ...
- Android界面刷新
Android的invalidate与postInvalidate都是用来刷新界面的,用法区别在于: 1)invalidate():实例化一个Handler对象,并重写handleMessage方法调 ...
- Android界面刷新方法
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中 ...
随机推荐
- width() 、 height() 方法;innerWidth() 、innerHeight() 方法;outerWidth() 、 outerHeight() 方法的区别
1.width() . height() 方法 设置或返回元素的宽度.高度(不包括内边距.边框或外边距): 2.innerWidth() .innerHeight() 方法 返回元素的宽度.高度(包括 ...
- python之tkinter使用-简单对话框
# 简单对话框,包括字符.整数和浮点数 import tkinter as tk from tkinter import simpledialog def input_str(): r = simpl ...
- [代码]--python爬虫联系--爬取成语
闲来无事,玩了个成语接龙,于是就想用python爬取下成语网站上的成语,直接上代码: #coding=utf-8 import requests from bs4 import BeautifulSo ...
- 微信access_token请求之简单缓存方法封装
还有东西要搞,就直接上代码 function.php <?php // 一个好玩的 curl 类 // https://github.com/metowolf/Meting/blob/maste ...
- 关于js特效轮播图练习
[出现问题] js轮播图,图片未正常轮播. [解决方法] 通过对代码的检查,发现是以下三个原因造成的错误. 1.js代码问题 js代码使用alert(test);,测试修改完毕后,发现依然没有解决错误 ...
- POJ2635-The Embarrassed Cryptographer-大整数素因子
计算一个大整数(10^100)中有没有一个小于L的素因子.这个大整数是两个素数的乘积.其实就是RSA加密. 做法是把大整数表示成千进位,用数组存储,然后一位一位地取模. /*------------- ...
- webservice 测试页面
转载:http://www.cnblogs.com/JuneZhang/archive/2013/01/24/net.html 解决WebService 测试窗体只能用于来自本地计算机的请求 问题: ...
- 【BZOJ2227】[ZJOI2011]看电影(组合数学,高精度)
[BZOJ2227][ZJOI2011]看电影(组合数学,高精度) 题面 BZOJ 洛谷 题解 这题太神仙了. 首先\(K<N\)则必定无解,直接特判解决. 现在只考虑\(K\ge N\)的情况 ...
- emwin 之消息 WM_INIT_DIALOG
@2018-08-09 小记 消息 WM_INIT_DIALOG 在创建窗口时首先发送且只在创建窗口时发送即只发送这一次
- 洛谷 P2774 方格取数问题 解题报告
P2774 方格取数问题 题目背景 none! 题目描述 在一个有 \(m*n\) 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大. ...