vb2005 往窗体上加载动态产生1200个Label,速度慢啊
问题所在:Me.Controls.Add(labModule(i))'
之前用TableLayoutPanel加载这些Label,那速度,简直了,更慢~~~~
谁有遇到过这样的问题啊? --------------------编程问答-------------------- 1200个…… 能不慢吗…… --------------------编程问答-------------------- 生成很快,就是网control上add时慢,哎 --------------------编程问答-------------------- 开始添加控件前
Me.SuspendLayout()
最后
Me.ResumeLayout(False)
这样我想应该快些 --------------------编程问答-------------------- 开始添加控件前
Me.SuspendLayout()
最后
Me.ResumeLayout(False)
这样我想应该快些
试过了,不行啊 --------------------编程问答-------------------- 等待 2 - 3秒就显示了
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim myPanel As Panel = New Panel()
myPanel.Parent = Me
myPanel.Dock = DockStyle.Fill
Dim i As Integer = 0
While (i < 1200)
Dim tt(1199) As Label
tt(i) = New Label()
tt(i).BorderStyle = BorderStyle.Fixed3D
tt(i).Left = i * 5
tt(i).Top = i * 5
tt(i).BackColor = Color.DarkGreen
myPanel.Controls.Add(tt(i))
i = i + 1
End While
myPanel.Show()
End Sub
End Class --------------------编程问答-------------------- 2-3秒应该很慢了,delphi和VB要女.NET快好多哦,..
.NET的机制问题了..
--------------------编程问答-------------------- 个人感觉应该从屏幕缓存换页等技巧着手,不要什么都让系统来处理。
恐怕很少有谁的屏幕能够同时显示1200个label,即使能够显示,怎么看呢?
可以参考DirectX等机制,通过缓存来改善人机界面。
就好像播放软件不会把全部片子一下子都调出来的,而是一点一点的播放。
实在不行,就给出分页的按钮,点一下,换一页,这样更好处理。
仅供参考了。 --------------------编程问答-------------------- 不要用Label,直接用Graphics在界面上画文字吧。 --------------------编程问答-------------------- 学习... --------------------编程问答-------------------- 我加载20个自定义控件就慢到吐血了.
补充:.NET技术 , VB.NET