繁体   English   中英

未声明“ MsgBox”。 由于其保护级别,它可能无法访问

[英]'MsgBox' is not declared. It may be inaccessible due to its protection level

我使用vb.net已有很长时间了,但是从未遇到过此问题。 由于某些原因,Intellisense无法检测到MsgBox()。 当我将鼠标悬停在突出显示的红线上时,它说“未声明'MsgBox'。由于其保护级别,它可能无法访问”,并在潜在的修复程序中尝试创建一个名为MsgBox()的新函数。 下面是代码:

Imports System
Imports System.Data.SqlClient
Imports System.Runtime.InteropServices
Imports System.Web.Configuration
Imports Microsoft.Office.Interop.Outlook

Public Class ConferenceRooms
    Inherits System.Web.UI.Page

    Dim SQLConnection As New 
SqlConnection(ConfigurationManager.ConnectionStrings("MyDB").ConnectionString)
    Dim SQLcommand As New SqlCommand
    Dim SQLAdapter As SqlDataAdapter
    Dim SQLDataTable As DataTable

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    'MsgBox(LBTest.Attributes("title"))
    'Dim lb As Label = CType(Me.Controls("HR Conference Room"), Label)
     If Not IsPostBack Then
        Dim Query1 As String
        Query1 = "Select Location_ID from LCSConference_Locations where vacant = 1"
        RunQuery(Query1)
        Dim OrganizerEmail As String = OrgEmail.Value
        Dim Agenda As String = MeetAgenda.Value
        Dim Location As String = MeetLocation.Value
        MsgBox("Hello")

    End If
End Sub

这是重要的部分:

Inherits System.Web.UI.Page

您非常了解的VB.Net是Windows窗体。 我们这里有一个ASP.Net WebForms页面。 您不能在网页中使用MsgBox()因为原始HTML没有直接匹配项。

好的,您可以进行正确的调整,但不能按您想要的方式工作-消息将显示在服务器上的特殊专用桌面上,在该桌面上,该消息将阻止请求,直到线程超时,并且最终用户永远不会看见。 有时它似乎可以按照您想要的方式工作,但这仅在您的开发环境中,其中Web服务器和客户端浏览器位于同一台计算机上。 在现实世界中,您能找到的最接近的地方是注册一个JavaScript函数,该函数在DOM启动时运行,以调用alert() ,这远远没有那么好。

这只是Web Forms和WinForms平台之间的众多差异之一。 Web Forms旨在使开发人员更轻松地从WinForms过渡到Web开发,但是它仍然是一个全新的平台,基于HTTP Request / Response模型的必要性。 就像其他平台一样,它仍然需要大量学习才能很好地学习。

因此,在构建网页时,您需要考虑创建HTML元素来显示消息。 重要的是要记住,您编写的任何VB.Net事件代码都是在Web服务器上运行的,只有在将新请求发送到服务器后才能完全重新启动页面生命周期,并且远离最终用户; 永远不会在用户的Web浏览器中。 刚开始时这可能非常令人沮丧,因为与javascript和公司相比,您几乎会非常了解VB.Net和WinForms API。 但是随着时间的推移,它确实变得更加容易。

但是在这种情况下,您实际上仅使用MsgBox()来输出调试信息。 相反,您可以在这里使用System.Diagnostics.Trace类。 Trace可让您将消息直接放入Visual Studio输出窗口...,文件,数据库,控制台或您希望查看它们的任何位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM