此刻我正在玩vb.net
。我正在尝试在automatisation
。
formproperties
想象一下,我有2个课程和2个表格
Class A
Class B
Form1
Form2
Form1
&创建的所有实例在Form2
中创建的Class A
应该会收到以下属性
'objForm1 is an instance of Form 1
objForm1.TopMost = True
这可以使用以下逻辑
Public Property _objForm1 As Form()
........ 'Some other code
_objForm1 = New Form1()
AddHandler _objForm1.VisibleChanged, AddressOf UpdateVisibilityProperties
........ 'Some other code
Private Sub UpdateVisibilityProperties(sender As Object, e As EventArgs)
CType(sender, Form).TopMost = True
End Sub
现在问题:Form1
有一些其他所需的属性,然后是Form2
。 Form1
中ClassA
的实例的属性与ClassB
中的属性不同。如何设置每个Form1
的属性,并在Form2
内创建的ClassA
的每个实例上设置其他属性?
注意:我不想要代码(因为现实生活情况处理了几十种形式):
Private Sub UpdateVisibilityProperties(sender As Object, e As EventArgs)
If CType(sender, Form).GetType() Is GetType(Form1) Then
CType(sender, Form).TopMost = True
....
End If
If CType(sender, Form).GetType() Is GetType(Form2) Then
CType(sender, Form).BackColor = Drawing.Color.Aqua
....
End If
' Other forms may follow here
End Sub
注意:amount of Instances
或Form1
的{{1}}在任何给定时间可能会在0到50之间变化。
更新:我可以在构造函数中传递属性,但我不希望这样。我想要一个不需要我改变Form2
或Form1
更新:继承不是一个选项。 Form2
ClassA
中设置的属性可能与Form1
中设置的属性不同。其次编写基类/接口会迫使我对不同的表单进行更改(覆盖方法/实现方法)
感谢您的时间