在 dll 库中显示消息框

本文关键字:消息 显示 dll | 更新日期: 2023-09-27 18:32:50

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

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

出于某种原因。目前,我需要它用于Winforms中的应用程序,并且我也想为我的其他Webforms应用程序使用相同的dll。谁能指导如何实现它?不用说我不想参考System.Windows.FormsSystem.Web.谁能给我一些指示?我正在使用.net 4.0

我不想发布/订阅事件,因为我对出租车架构不是很熟悉。

编辑

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

谢谢。

在 dll 库中显示消息框

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

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

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


至于你的编辑:

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

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

为此,

您需要右键单击项目并选择"添加引用",然后选择".NET"选项卡并单击"System.Windows.Forms"。那么这应该在.dll内工作:

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

当然,对于原始海报(如CodeCaster所涵盖的那样(,这是一个坏主意。