我无法弄清楚这里的问题是什么。我从头开始项目,去调试,并收到错误:
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
有什么建议吗?我无法弄清楚需要在项目属性的应用程序选项卡中进行哪些更改。
答案 0 :(得分:4)
我得到了同样的错误并意识到这是因为我在表单代码中声明了一个私有默认构造函数。如果您创建了一个构造函数但没有公开它,请尝试将其公开。
答案 1 :(得分:2)
确保您的表单类名为 frmMain ,注意不是文件名,而是类名。
也许您已将表单文件名重命名为 frmMain.vb ,但在文件的代码中,类的签名仍然不同。
答案 2 :(得分:2)
此错误的另一个可能原因是,如果在初始化期间窗体控件的事件处理程序中出现异常。 表单的创建失败,因此引发了异常。
答案 3 :(得分:0)
这种症状的另一个可能原因,以及一个特别模糊的症状:
我在Designer中的子窗体中添加了两个LineShape控件,导致Me.MainForm错误。
(工具箱/ Visual Basic PowerPacks / LineShape)。
文档中的这一点可能提供一个线索:
“在运行时创建LineShape控件时,还必须创建一个ShapeContainer并将LineShape的Parent属性设置为ShapeContainer。”
我使用设计器添加了LineShapes,因此它应该自动创建ShapeContainers但可能已经失败,可能是因为我已将它们添加到几层深的容器中。我删除了LineShapes以解决问题。
答案 4 :(得分: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)
最后一行将导致受保护的覆盖
中出错答案 5 :(得分:0)
我有同样的问题...我删除了我的表单中的所有工具然后它运行没有任何问题...然后我发现它是webbrowser控件导致我的问题...我删除它并再次添加它,程序运行没有任何麻烦...尝试逐个删除控件并检查导致问题的那个...然后删除特定控件并重新添加它以使其工作...这发生在您将解决方案从一台PC复制到另一台...
答案 6 :(得分:0)
Public Sub New()
InitializeComponent()
End Sub
答案 7 :(得分:0)
当我在表单中添加以下内容时,我实际上出现了此错误。
Private Sub New()
InitializeComponent()
End Sub
很奇怪!