我只是想知道如果您通过代码调用 .visible/.enabled/etc 而不是在属性窗口中设置它们,如果我们谈论 75+,它会减慢窗口响应速度/方法的处理速度吗?表单上的标签和按钮?如果您可以通过属性进行设置,那么通过代码设置这些属性对我来说是没有意义的,除非出于明显的原因,例如隐藏标签
问问题
69 次
3 回答
0
当您设置控件属性(可见/启用)时,这样做会产生一些开销。它可能很小,但是当您开始使用大量控件执行此操作时,它可能会变得很明显。虽然在少数控件上,我不担心这些事情,但当您使用大量(或未知)控件时,我总是这样做,以防万一:
If Not Label1.Visible then Label1.Visible = True
或者
If Label1.Visible then Label1.Visible = False
PAINT 事件中的真正工作,这只是设置一个标志,但如果您的属性有在更改时触发的事件,这可能会越来越有帮助。
于 2013-10-11T21:36:07.017 回答
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 不同,“运行时代码”和“设计时代码”之间没有真正的区别——设计师生成的代码是相同的。尝试用秒表计时是没有意义的,因为您在测试中设置的任何一组属性都是增量(额外)工作。
您设置一堆属性的代码就像设计者使用的代码一样,因此两者的执行速度都不会比另一个快。除了添加特殊循环来重置大小或字体时,您可以让设计器代码在创建时设置它。
于 2013-10-11T21:21:45.553 回答
0
嗯,这是一个非常难的问题。
我认为这两种方式的处理速度并没有太大的差异,因为即使你在窗口中执行它,编译器也必须制作对象等。所以,合乎逻辑的结论是,时间是相似的。
于 2013-10-11T19:52:31.563 回答