2012-05-02 36 views
1

我写一个dll库(例如用于检查用户的登录信息),我想弹出一个确认对话框或在这个过程中信息对话框,例如显示消息框在dll库

"Are you sure you want to continue? (Yes/No/Cancel)"

由于某种原因。目前,我需要这个在Winforms中的应用程序,我也想为我的其他webforms应用程序使用相同的DLL。任何人都可以指导如何实现它?无需多言,我不想引用System.Windows.FormsSystem.Web。任何人都可以给我一些建议吗?我正在使用.net 4.0

我不想出版/订阅活动,因为我对驾驶室架构不是很熟悉。

编辑

我有在应用程序运行时创建数据库的DLL。所以我的dll通常会检查数据库是否已经存在并且是否最新,如果它停止。但是,如果它不存在或不存在,那么我想询问用户是否要现在或之后更新它。如果用户现在说,更新它,然后继续申请。这只是一个例子,任何有关这方面的信息都是值得欢迎的。

谢谢。

+0

那么,你可以参考VisualBasic.Interop ......但我想这也不会让你满意,对吗? – SimpleVar

+3

如果不使用窗口支持库,则无法在非窗口环境中查看窗口。 – SimpleVar

+0

嗯,我认为这就是为什么我们有'确认'网络 – V4Vendetta

回答

6

你真的不应该。这不属于库中,但应该在使用此库的应用程序中完成。

如果WinForms应用程序可能通过显示MessageBox来解决问题,那么Web应用程序可能会在执行请求时无需询问POST成功(因为POST通常显示修改资源的意图)。

例如,当您的库用于登录时,只需输入AuthenticationException即可,因此客户端应用程序(无论是WinForms,web还是其他)都可以捕获并显示相应的消息。


至于你的编辑:

我有在应用程序运行时创建数据库的DLL ...

为什么不公开两个方法,如IsDatabaseUpToDate()UpdateDatabase()?然后在客户端中,您可以调用第一种方法。如果它返回false,那么您要求用户(无论是MessageBox,HTML表单,JavaScript Alert,简单的Yes按钮还是闪烁的tile)是否要更新数据库。如果是这样,你打电话UpdateDatabase()方法,你准备好了。

+0

但是如果消息需要在方法的中间显示呢?我想在用户单击后执行某些操作是/否/取消 – Sandy

+1

@rapsalands然后您应该将该方法拆分为多个较小的方法,然后让这些问题用用于调用该方法的参数进行回答。你能否给出一个确切的例子,当你认为你可能需要这个? – CodeCaster

+0

请参阅编辑 – Sandy

0

要做到这一点,您需要右键单击项目并选择“添加引用”,然后选择“.NET”选项卡并单击“System.Windows.Forms”。那么这应该将.dll里面工作:

System.Windows.Forms.MessageBox.Show("Hello World!"); 

当然,这是原来的海报是一个坏主意(由CodeCaster作为覆盖)。

+0

从来没有....你怎么可以添加Windows窗体参考库。这会使你的图书馆与其他平台如webforms不兼容 – Sandy