当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,