社区
C#
帖子详情
动态创建控件
esheng
2007-04-28 11:04:36
为什么动态创建控件速度会这么慢?比如创建100个Label lbltest=new Lable();lbltest.parent=this;
...全文
640
19
打赏
收藏
动态创建控件
为什么动态创建控件速度会这么慢?比如创建100个Label lbltest=new Lable();lbltest.parent=this;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
b13272012771
2011-04-11
打赏
举报
回复
up up
key_rock
2007-05-31
打赏
举报
回复
瀛︿範!
Mither
2007-05-31
打赏
举报
回复
up
yuanzhihua520
2007-05-31
打赏
举报
回复
up
ismezy2002
2007-05-11
打赏
举报
回复
切换与刷新不作讨论,LZ只是提出创建的问题,我只讨论动态创建需要多长时间。而且动态创建控件实在是很简便,这需要权衡利弊。
ismezy2002
2007-05-11
打赏
举报
回复
显然5年前我就在用C#了,如果不是C#你以为我会这么回贴吗?
你说没验证过就没有发言权,不知道你验证过没有,我回贴一般都会验证的,我上面贴出的代码(可能你没看到,我再贴一遍),有兴趣的可以自己单独创建一个窗口,放一个Button上去在单击事件中加上如下代码,看看创建100个LABEL需要多久。另外可以试试删掉SuspendLayout();这一行需要多久,并且加大循环次数试试看2者的区别。
long nStart = DateTime.Now.Ticks;
SuspendLayout();
for (int i = 1; i <= 100; i++)
{
Label lb = new Label();
lb.Text = i.ToString();
lb.AutoSize = true;
lb.Location = new Point(i % 30 * 20 + 20, 20 + i / 30 * 20);
Controls.Add(lb);
}
ResumeLayout();
long nEnd = DateTime.Now.Ticks;
MessageBox.Show(((nEnd - nStart) / 10000).ToString() + "毫秒");
lovingkiss
2007-05-01
打赏
举报
回复
ismezy2002,没有验证过就没有发言权,5年前你用什么编制程序??
用VB别说30,100个也没有问题的!用C的话,200个也不会晃动~~
用.Net,我的计算机是1G内存,PIII3.0的,生成50个Lable需要2-4秒钟!!!
而且生成后,在窗体间切换都会闪动——屏幕刷新都会有问题,这不是代码能够解决的。
编程语言还是有很大差异的.
ismezy2002
2007-04-28
打赏
举报
回复
不是吧,我这里有N倍的差距,你可以单独写个程序试试,说不定是你其他地方的代码影响了速度
esheng
2007-04-28
打赏
举报
回复
效果不是很明显!
ismezy2002
2007-04-28
打赏
举报
回复
我在没有用SuspendLayout()时花了2-3秒创建LABEL
用了SuspendLayout();后只花了不到1秒,0.5秒的样子
ismezy2002
2007-04-28
打赏
举报
回复
SuspendLayout();
for (int i = 0; i < 100; i++)
{
Label lb = new Label();
lb.Text = i.ToString();
lb.Location = new Point(100, i * 20 + 20);
Controls.Add(lb);
}
ResumeLayout();
你试下,差别大了,N倍的差距
IoriYagami80
2007-04-28
打赏
举报
回复
即便你不动态创建,画100个按钮上去,速度也会让你郁闷死的。
lovingkiss
2007-04-28
打赏
举报
回复
没用的,.net创建多控件的时候,速度就是很慢,除非绘制控件~~
esheng
2007-04-28
打赏
举报
回复
不起作用呀!老兄!
ismezy2002
2007-04-28
打赏
举报
回复
创建控件时先临时挂起布局,SuspendLayout (),创建完后用 ResumeLayout()
caiwenqiang
2007-04-28
打赏
举报
回复
那如何在Web窗体上动态生成一个TextBox控件,
我写了以后,错误提示是这个动态生成的控件的属性<runat=server>没有设置,
怎样动态设置呀??
ismezy2002
2007-04-28
打赏
举报
回复
我在5年前就试过了,在一个界面上用TEXTBOX拼一个表格,整个界面上有100+个TEXTBOX,那时还是PIII 500的CPU 256MB内存,生成界面也就2秒左右,难道这也算慢?如果用现在的配置100个控件根本就是0.5秒以内的事 。不知道大家有没测试过,控件的加载肯定是很快的。别说你们用的是PII
ismezy2002
2007-04-28
打赏
举报
回复
控件越多越明显,我测试了500个LABEL,如果不挂起布局,需要10+秒,如果挂起布局只需2秒不到。100个LABEL在我电脑上根本就是一闪而过,用不上半秒
lovingkiss
2007-04-28
打赏
举报
回复
差距肯定会有的——但是一旦多于30左右之后,效果就不是很明显了,太慢的
自定义图谱
控件
使用范例
本例实现了一个自定义的图谱
控件
,可以绘制连续波形,有坐标系,功能较为简单
MSChart
控件
绘制曲线 示例代码
MSChart
控件
绘制曲线 示例代码 MSChart
控件
绘制曲线 示例代码
winform模仿QQ聊天窗口皮肤
控件
CSharp winform 模仿QQ聊天窗口皮肤
控件
WPF经典教程之WPF
控件
内容模型
WPF
控件
内容模型主要指派生于System.Windows.Controls.Control类的各种
控件
,其主要分为四部分: • ContentControl • HeaderedContendControl • ItemsControl • HeaderedItemsControl 其继承关系请参考我上一篇博客的内容。.... (更多资源:http://cleopard.download.csdn.net/) (福利:http://xuemeilaile.com/) WPF经典教程之WPF体系结构 http://download.csdn.net/detail/cleopard/7999393 WPF经典教程之WPF应用程序管理 http://download.csdn.net/detail/cleopard/8002969 WPF经典教程之WPF窗体 http://download.csdn.net/detail/cleopard/8002979 WPF经典教程之StackPanel、WrapPanel、DockPanel布局 http://download.csdn.net/detail/cleopard/8002985 WPF经典教程之Grid、UniformGrid布局 http://download.csdn.net/detail/cleopard/8002993 WPF经典教程之Canvas、InkCanvas布局 http://download.csdn.net/detail/cleopard/8002997 WPF经典教程之WPF
控件
模型 http://download.csdn.net/detail/cleopard/8002999
cocos2dx-3.0功能强大的richText
控件
源码
http://blog.csdn.net/ljxfblog 自写richtext博文配套代码。
C#
111,120
社区成员
642,545
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章