在dll库显示消息框(Display messagebox in dll library)

2019-07-29 06:00发布

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

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

由于某些原因。 目前我需要这个Winforms中的应用程序,我想也使用相同的dll对我的其他web表单应用程序。 任何人都可以指导如何实现的呢? 需要较少的说,我不想引用System.Windows.FormsSystem.Web 。 任何一个可以给我一些指点? 我使用.NET 4.0

我不想对事件的发布/订阅,因为我不是很熟悉的驾驶室结构。

编辑

我有一个在应用程序运行时创建数据库的DLL。 所以,我的DLL一般检查,如果数据库已经存在,并且是高达日期或不是,如果是则停止。 但是,如果它不存在或无法高达日期,那么我要问用户,如果他想现在或以后进行更新。 如果用户现在说,更新和事后说继续申请。 这只是一个例子,并在此的任何相关信息是值得欢迎的。

谢谢。

Answer 1:

你真的不应该。 这并不在图书馆属于,而应在使用这个库,而不是应用程序来完成。

当一个WinForms应用程序可以通过显示一个解决这个问题MessageBox ,一个Web应用程序可能(因为POST通常显示的意图修改资源),而一个成功的POST请求后执行请求。

例如当你的库用于登录,简单地抛出一个AuthenticationException ,所以客户端应用程序(无论是的WinForms,网络,或其他)可以赶上并显示相应的信息。


至于你的编辑:

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

为什么不公开两个方法,如IsDatabaseUpToDate()UpdateDatabase() 然后在客户端,你可以调用第一个方法。 如果返回false,你问用户他们是否要更新数据库(有一个消息,一个HTML表单,一个JavaScript警告,简单的是按钮或闪烁的瓷砖吧)。 如果是这样,你叫UpdateDatabase()方法,你准备好去。



Answer 2:

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

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

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



文章来源: Display messagebox in dll library