2013-10-11 41 views
0

我只是想知道如果你通过代码调用.visible/.enabled/etc而不是在属性窗口中设置它们,如果我们正在讲话75+,它会减慢窗口响应速度/方法的处理速度吗?标签和表单上的按钮?只是没有意义的,我有这些属性通过代码设置,如果你可以通过设置属性,除非出于显而易见的原因喜欢隐藏的标签,例如代码中的过度属性调用速度慢吗?

+0

我可能会误解你,但你建议如何在运行时不存在属性窗口中更改这些设置吗? –

+0

我在说你可以将所有具有visible属性的标签设置为TRUE,而不必在代码的Load方法中设置它们。如果整个问题是将控件可见性属性设置为true,那么对于控件使用属性窗口而不是在代码中调用它是不是最简单? – Criel

+0

看看窗体设计器中的代码......它是做同样的事情,你会没有区别 – Plutonix

回答

0

嗯,这是一个非常困难的问题。

我认为这两种方法之间的处理速度没有很大的差异,因为即使在窗口中编译器必须制作对象等等。因此,合乎逻辑的结论是,时间是类似的。

+0

更像是相同的 - 看看设计器文件中的代码 – Plutonix

0

表单设计文件充满了这样的代码为每一个控制和组件:

' 
    'Label2 
    ' 
    Me.Label2.AutoSize = True 
    Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, CType((System.Drawing.FontStyle.Bold Or System.Drawing.FontStyle.Italic), System.Drawing.FontStyle), System.Drawing.GraphicsUnit.Point, CType(0, Byte)) 
    Me.Label2.Location = New System.Drawing.Point(645, 9) 
    Me.Label2.Name = "Label2" 
    Me.Label2.Size = New System.Drawing.Size(58, 20) 
    Me.Label2.TabIndex = 4 
    Me.Label2.Text = "Player" 

不像VB6有“运行时代码”和“设计时间码”之间没有真正的区别 - 设计师生成的代码一样。尝试用秒表计时毫无意义,因为您在测试中设置的任何一组属性都是增量(额外)工作。

你的代码中设置了一堆的属性是一样的设计人员使用的代码,所以也不是要执行任何比其他快。除了添加特殊循环来重置大小或字体时,您可以让设计器代码在创建时设置它。

0

当你设置控件属性(可见/启用)存在这样一些开销。它可能很小,但是当你用很多控件开始做这件事时,它可能会变得明显。虽然对少数的控制,我不担心这样的事情,当你到一个大的(或未知)数量的控制,我总是这样做,以防万一:

If Not Label1.Visible then Label1.Visible = True 

If Label1.Visible then Label1.Visible = False 

在Paint事件的实际工作中,这只是设置一个标志,但如果你的财产有事件火灾改变时,这可能帮助了越来越多。