在dll库中显示消息框

时间:2012-05-02 10:59:03

标签: c# .net dll message

我正在编写一个dll库(例如用于检查用户的登录详细信息),我想在此过程中弹出确认对话框或信息对话框,例如

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

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

我不想发布/订阅活动,因为我对cab架构不是很熟悉。

修改

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

感谢。

2 个答案:

答案 0 :(得分:6)

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

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

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


至于你的编辑:

  

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

为什么不公开IsDatabaseUpToDate()UpdateDatabase()这两种方法?然后在客户端中,您可以调用第一个方法。如果它返回false,则询问用户(无论是使用MessageBox,HTML表单,JavaScript警报,简单的Yes按钮还是闪烁的磁贴)是否要更新数据库。如果是这样,您可以调用UpdateDatabase()方法,然后就可以开始了。

答案 1 :(得分:0)

要完成此操作,您需要右键单击项目并选择“添加引用”,然后选择“.NET”选项卡并单击“System.Windows.Forms”。那么这应该在.dll中起作用:

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

当然这对于原始海报来说是个坏主意(由CodeCaster承担)。