我有一个应用程序,它可以从许多不同的操作中启动/更新一个表单(让我们称之为QuickNoteForm)。它可以从许多不同的选项卡启动表单,并且大部分是通过我的应用程序中的按钮启动的。
我基本上想跟踪它是从哪里发射的(我需要跟踪它的发射路线)。
什么是实现这一目标的好方法。我正在考虑将其作为通过QuickNoteForm的构造函数设置的属性来封装。我想追踪这个表单是从哪个动作中启动的。
这是一个windows窗体应用程序,而不是asp.net应用程序。
谢谢。
发布于 2014-12-11 20:33:04
创建一个枚举,列出所有可能的路径(如果您担心可维护性,则创建一个包含常量的静态类,在编译和修改时枚举不能很好地工作)。向窗体中添加一个自定义构造函数,该构造函数将接受此枚举作为参数。实例化表单时,请使用该构造函数。基本上将所有出现的New QuickNoteForm()
替换为New QuickNoteForm(yourEnumValue)
。为了兼容性,向枚举添加一个Unknown = 0
值,这样调用表单的默认构造函数也会工作,只是没有那么有用。
如果这种方法不实用(请提供您的应用程序的更多细节),您还可以在表单的构造函数中提供一个上下文控件作为参数。然后有像If typeOf ctl Is Button AndAlso DirectCast(ctl, Button).Text = "Something" Then
这样的代码和各种各样的疯狂的东西。这促进了关注点的分离,即调用代码不需要知道如何调用,只需要将其作为参数传递,还会使代码更难维护,因为您可能最终会得到一种将所有部件连接在一起的巨大的“万事通”方法。
https://stackoverflow.com/questions/27430276
复制相似问题