4

我无法弄清楚这里的问题是什么。我从头开始项目,去调试,并收到错误:

System.InvalidOperationException 未处理 Message=创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:对象引用未设置为对象的实例。

我不明白为什么在自动生成的文件中会发生此错误。这是完整的代码:

    '------------------------------------------------------------------------------
' <auto-generated>
'     This code was generated by a tool.
'     Runtime Version:4.0.30319.269
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------

Option Strict On
Option Explicit On


Namespace My

    'NOTE: This file is auto-generated; do not modify it directly.  To make changes,
    ' or if you encounter build errors in this file, go to the Project Designer
    ' (go to Project Properties or double-click the My Project node in
    ' Solution Explorer), and make changes on the Application tab.
    '
    Partial Friend Class MyApplication

        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Sub New()
            MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
            Me.IsSingleInstance = false
            Me.EnableVisualStyles = true
            Me.SaveMySettingsOnExit = true
            Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
        End Sub

        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Protected Overrides Sub OnCreateMainForm()
            Me.MainForm = Global.AccountAndClientFull.frmMain 'HERE IS WHERE THE ERROR OCCURS
        End Sub
    End Class
End Namespace

错误发生在:

Me.MainForm = Global.AccountAndClientFull.frmMain

有什么建议么?我无法弄清楚需要在项目属性的应用程序选项卡中进行哪些更改。

4

9 回答 9

5

我得到了同样的错误,并意识到这是因为我在表单代码中声明了一个私有默认构造函数。如果您创建了一个构造函数并且没有将其公开,请尝试将其公开。

于 2012-10-01T20:09:52.323 回答
3

确保你有一个名为frmMain的表单类,注意不是文件名而是类名

也许您已将 Form 文件名重命名为frmMain.vb,但在文件的代码中,类的签名仍然不同。

于 2012-08-15T04:02:20.453 回答
2

此错误的另一个可能原因是初始化期间窗体控件的事件处理程序中是否发生异常。表单的创建失败,因此引发了异常。

于 2013-09-03T08:33:58.800 回答
0

这种症状的另一个可能原因,也是一个特别模糊的原因:

我在 Designer 的子窗体中添加了两个 LineShape 控件,导致 Me.MainForm 错误。

(工具箱/Visual Basic PowerPacks/LineShape)。

文档中的这一点可能会提供一个线索:

“在运行时创建 LineShape 控件时,还必须创建一个 ShapeContainer 并将 LineShape 的 Parent 属性设置为 ShapeContainer。”

我使用设计器添加了 LineShapes,所以它应该自动创建了 ShapeContainer,但这可能失败了,可能是因为我已经将它们添加到了一个容器中,已经有好几层了。我删除了 LineShapes 来解决这个问题。

于 2013-10-07T09:49:24.393 回答
0

如果您有任何直接在导致错误的类下的标准,它也会在此错误上中断。
例如:

Public Class Form1
    Dim FILE_NAME As String = "C:\Folder\File.txt" '//if this file does not exist
    Dim objReader As New System.IO.StreamReader(FILE_NAME)

最后一行将导致受保护的覆盖错误

于 2015-07-01T11:54:11.090 回答
0

从字符串回车时,我不喜欢 VB.NET 功能,所以在下面添加了这段代码Public Class Form1,希望能消除那个烦人的代码:

Dim origString As String
Dim newString As String = origString.Replace(vbCr, "").Replace(vbLf, "")

此代码导致了同样的问题。所以可能的解决方案是评论或删除它:

'Dim origString As String 'From Multiline Textbox'
'Dim newString As String = origString.Replace(vbCr, "").Replace(vbLf, "")
于 2015-09-11T09:29:03.463 回答
0

我遇到了同样的问题...我删除了表单中的所有工具,然后它运行没有任何问题...然后我发现是网络浏览器控件引起了我的问题...我将其删除并添加了再次,程序运行没有任何问题...尝试逐个删除控件并检查导致问题的控件...然后删除特定控件并重新添加以使其正常工作...当您复制您的从一台电脑到另一台电脑的解决方案...

于 2018-04-18T17:11:12.240 回答
0
 Public Sub New()
        InitializeComponent()
 End Sub
  • 只需将此代码添加到您的表格 frmMain
于 2018-07-13T14:03:41.353 回答
0

当我将以下内容添加到我的表单时,我实际上遇到了这个错误。

    Private Sub New()
        InitializeComponent()
    End Sub

很奇怪!

于 2020-09-28T00:34:13.940 回答