过多的属性是否会以低速调用代码?

时间:2013-10-11 19:44:16

标签: vb.net winforms properties

我只是想知道你是否通过代码调用.visible / .enabled / etc而不是在属性窗口中设置它们是否会降低速度以降低方法的窗口响应速度/处理速度如果我们正在谈论75+ ?表格上的标签和按钮?如果您可以设置属性,那么通过代码设置这些属性对我来说没有意义,除非出于显而易见的原因(例如隐藏标签),例如

3 个答案:

答案 0 :(得分:0)

这是一个非常难的问题。

我认为处理速度在两种方式之间没有很大差异,因为即使你在窗口中执行它,编译器也必须制作对象等。 所以,合乎逻辑的结论是,时间是相似的。

答案 1 :(得分: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不同,“运行时代码”和“设计时代码”之间没有真正的区别 - 设计器生成的代码是相同的。试图用秒表计时是没有意义的,因为你在测试中设置的任何属性都是增量(额外)工作。

设置一组属性的代码就像设计者使用的代码一样,因此它们的执行速度都不会快于另一个。除了你可以让设计师代码在创建时设置代码时添加特殊循环以重置大小或字体的位置。

答案 2 :(得分:0)

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

If Not Label1.Visible then Label1.Visible = True

If Label1.Visible then Label1.Visible = False

在PAINT事件中真正的工作,这只是设置一个标志,但如果你的属性有更改时触发的事件,这可能会帮助越来越多。