我有一个应用程序,可以从许多不同的操作启动/新建一个表单(我们称之为QuickNoteForm)。它可以从许多不同的选项卡启动表单,并且大部分都是通过我的应用程序中的按钮启动的。
我基本上想要跟踪它的发射位置,即我需要跟踪它的发射路径。
实现这一目标的好方法是什么。我想把它作为一个通过QuickNoteForm的构造函数设置的属性。我想跟踪这个表单从哪个动作启动。
这是一个Windows窗体应用程序,而不是一个asp.net应用程序。
感谢。
答案 0 :(得分:0)
创建一个列出所有可能路径的枚举(或者如果你担心可维护性,那么带有常量的静态类,枚举在编译然后修改时效果不好)。向表单添加一个自定义构造函数,该构造函数将此枚举作为参数接受。实例化表单时,请使用该构造函数。基本上将所有New QuickNoteForm()
替换为New QuickNoteForm(yourEnumValue)
。为了兼容性,在枚举中添加Unknown = 0
值,这样调用表单的默认构造函数也会起作用,只是没有用。
如果这种方法不实用(请提供有关您的应用程序的更多详细信息),您还可以在表单的构造函数中提供上下文控制作为参数。然后有像If typeOf ctl Is Button AndAlso DirectCast(ctl, Button).Text = "Something" Then
这样的代码和各种疯狂的东西。这促进了关注点的分离,即调用代码不需要知道如何调用并仅将自身作为参数传递,而且还使您的代码更难维护,因为您可能最终得到一个巨大的知识方法,将所有部分连接在一起。