参考困境

时间:2009-07-01 06:30:07

标签: .net

我在解决方案中有两个项目:GUI和控件。

控件应该具有我们公司的自定义控件,并且所有表单都存在于GUI中。然而,在帝国之前的黑暗时代,一些天才认为创建一个TextBoxLookup控件是个好主意。这有一个你可以设置的自定义属性(例如BankAccount)和一个带右边按钮的文本框。当您单击按钮时,它会通过案例陈述并显示相应的表单,例如

select Case Me.LookupField
   .
   .
   .
Case FieldsEnum.BankAccount
   Dim x as new frmBankAccountLookup
   x.ShowDialog
Case FieldsEnum...
   .
   .
   .
End Select

随着时间的推移,这导致大约20个表单(属于GUI)实际上被塞入控件项目中,因此可以引用它们!

GUI引用Controls项目并在屏幕上显示文本框。我正在尝试清理它并将它们放回到它们所属的GUI中。按下按钮时,如何将Me.LookupField属性轻弹回GUI项目并让 it 调出表单?代表们?活动?基本形式?查找控件正在以数以万计的形式使用,因此消除了它......

2 个答案:

答案 0 :(得分:2)

如果控件引发事件以通知哪个项目已被选中,那将会更好。然后包含控件的表单可以响应事件并显示相应的表单。这应该允许您将控件与其他表单分开。

答案 1 :(得分:0)

您需要将控件的设计与实际逻辑分开。

让控件简单地触发用户单击按钮的事件,然后在GUI项目中处理它(创建控件实例的位置)。

通过这种方式,您可以将任何功能附加到控件上,并轻松地在其他项目中重复使用。