Vb.net 快速处置动态创建的控件(标签)

Vb.net 快速处置动态创建的控件(标签),vb.net,winforms,Vb.net,Winforms,我在Windows窗体中有很多动态创建的标签,将近30 x 80个 处理此控件的过程非常缓慢。我能看到它一步一步地工作几乎需要1秒钟 我使用以下代码(用于处理所有控件,其中名称以“var”开头): 处理控件是否更快捷?一个选项是将标签放在面板中,然后处理面板 Panel1.Dispose() 问题已解决,请参见如何声明和初始化: 模块mdl_main 作为System.Windows.Forms.Panel的专用pn1 Public Sub ShowPanelAgain() pn1 =

我在Windows窗体中有很多动态创建的标签,将近30 x 80个

处理此控件的过程非常缓慢。我能看到它一步一步地工作几乎需要1秒钟

我使用以下代码(用于处理所有控件,其中名称以“var”开头):


处理控件是否更快捷?

一个选项是将标签放在面板中,然后处理面板

Panel1.Dispose()

问题已解决,请参见如何声明和初始化:

模块mdl_main 作为System.Windows.Forms.Panel的专用pn1

Public Sub ShowPanelAgain()
    pn1 = New System.Windows.Forms.Panel
    pn1.Name = "dynPanel1"
    dlg_Main.Controls.Add(pn1)
    pn1.AutoSize = True
    pn1.AutoScroll = True
End Sub

Sub PanelLöschen()
    Try
        If pn1.IsDisposed = False Then
            pn1.Dispose()
            dlg_Main.Text = "pn gelöscht"
        End If
    Catch ex As Exception
        MsgBox("Fehler: " & ex.Message)
    End Try
End Sub

不必。尝试调用“循环”和“代码”>“代码”> DLGYMUN。ReXelayayOut/<代码>查看它是否有帮助。2400个标签对用户不太有用。当然,它们不需要在屏幕上同时看到所有这些。请考虑DATAGIDVIEW,否则,我已经尝试过。这是一个让它更快运行的解决方案。不要忽略我评论的第二部分。仅仅绘制矩阵是另一个解决方案。超过1000个控件是一个非常繁重的设计。好的,我将尝试使用面板。2400个标签不显示文本,而是显示颜色、边框等,因此显示彩色矩阵。这就是为什么我需要这么多小标签的原因。在我以前用VB6.0开发的应用程序中,它使用相同的代码运行得非常快!@misharichter-从VB6迁移到VB.net时,这是一个常见的误解。尽管它们是类似的语言,但迁移意味着要花很多时间重新思考您的方法。好的,但如果我想为(已处置)添加标签panel,代码是什么?首先我必须创建一个新的panel作为一个新的动态对象,然后我必须在此panel中添加标签。@Misharichter-您可能应该创建一个从现有panel类继承的自定义panel类,并让默认构造函数用标签填充它。这将使添加新panel更加简单。好的。Th最简单的方法是:创建面板并添加所有标签。但是,如果在处置面板时,在下一步中,我希望创建新的面板,则该面板不可见/不存在。在运行时重新创建处置的面板有什么问题?
Public Sub ShowPanelAgain()
    pn1 = New System.Windows.Forms.Panel
    pn1.Name = "dynPanel1"
    dlg_Main.Controls.Add(pn1)
    pn1.AutoSize = True
    pn1.AutoScroll = True
End Sub

Sub PanelLöschen()
    Try
        If pn1.IsDisposed = False Then
            pn1.Dispose()
            dlg_Main.Text = "pn gelöscht"
        End If
    Catch ex As Exception
        MsgBox("Fehler: " & ex.Message)
    End Try
End Sub