在类库中使用MessageBox

简介: 机房收费系统(VB.Net版)过程中,在D层的SqlHelper类中有一个异常捕获处理,捕获了异常之后想使用MessageBox.Show()弹出异常描述,但在编译时出现了“未声明“MessageBox”。它可能因其保护级别而不可访问。”的错误:

         错误:


       机房收费系统(VB.Net版)过程中,在D层的SqlHelper类中有一个异常捕获处理,捕获了异常之后想使用MessageBox.Show()弹出异常描述,但在编译时出现了“未声明“MessageBox”。它可能因其保护级别而不可访问。”的错误:


45.png


       查看帮助,MSDN给出的解释是:语句引用某个编程元素,但编译器无法找到具有该确切名称的元素。


       判断:


       编译器无法识别,但MessageBox在窗体应用程序中可以使用,而且MessageBox.Show()为.Net中公用的库函数,所以原因可能是窗体应用程序的项目隐含引用了函数库中的某个包含MessageBox.Show()的程序集,而类库项目没有引用这个程序集。


   

       解决:


       根据判断看了一下UI层的引用,果然比D层多了好多引用,经过尝试,得到结论:如果在D层(只是类库类型的项目的代表)使用MessageBox()方法,需要引用命名空间System.Windows.Forms。具体操作为(我用的是VIsualStudio2013,其他版本应该没有太大差异):


       1、右键要引用System.Windows.Forms的项目→添加→引用


46.png


        2、选择程序集下的“框架”,在System.Windows.Forms前打上勾,确定


47.png


       3、在类的文件头引用System.Windows.Forms:

        Imports System.Windows.Forms

        Tips:其实大家都知道,也可以直接使用Msgbox,但这两者有何区别呢?那么就请大家去问度娘吧。


相关文章
|
Java
swt java 内嵌ActiveX控件
这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX。
222 0
|
Java Android开发
Java的GUI窗体出现乱码解决方法
问题描述:   用java做一个图形化界面的程序,在Eclipse上运行后中文显示乱码,如下图所示: 解决方法:   在要运行的代码上右键 Run As --> Run Configurations...,   在 Arguments --> VM arguments:  中增加下面这句: -Dfile.encoding=gbk  结果: 注意:   我的电脑的编码是:GBK,Ecplise软件的编码是UTF-8。
4439 0