多个开放路径

时间:2014-12-11 18:52:05

标签: c# vb.net

我有一个应用程序,可以从许多不同的操作启动/新建一个表单(我们称之为QuickNoteForm)。它可以从许多不同的选项卡启动表单,并且大部分都是通过我的应用程序中的按钮启动的。

我基本上想要跟踪它的发射位置,即我需要跟踪它的发射路径。

实现这一目标的好方法是什么。我想把它作为一个通过QuickNoteForm的构造函数设置的属性。我想跟踪这个表单从哪个动作启动。

这是一个Windows窗体应用程序,而不是一个asp.net应用程序。

感谢。

1 个答案:

答案 0 :(得分:0)

创建一个列出所有可能路径的枚举(或者如果你担心可维护性,那么带有常量的静态类,枚举在编译然后修改时效果不好)。向表单添加一个自定义构造函数,该构造函数将此枚举作为参数接受。实例化表单时,请使用该构造函数。基本上将所有New QuickNoteForm()替换为New QuickNoteForm(yourEnumValue)。为了兼容性,在枚举中添加Unknown = 0值,这样调用表单的默认构造函数也会起作用,只是没有用。

如果这种方法不实用(请提供有关您的应用程序的更多详细信息),您还可以在表单的构造函数中提供上下文控制作为参数。然后有像If typeOf ctl Is Button AndAlso DirectCast(ctl, Button).Text = "Something" Then这样的代码和各种疯狂的东西。这促进了关注点的分离,即调用代码不需要知道如何调用并仅将自身作为参数传递,而且还使您的代码更难维护,因为您可能最终得到一个巨大的知识方法,将所有部分连接在一起。