Projekt kaputt? - ist ein Klassentyp und kann nicht als Ausdruck verwendet werden.

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von jan99.

    Projekt kaputt? - ist ein Klassentyp und kann nicht als Ausdruck verwendet werden.

    Moin!

    ich eine Windowsform-Anwendung erstellt und dann später noch ein Modul von der dann später erst die Form erst aufgerufen werden soll, da vorab noch einige logische Test gemacht werden müssen. (Diese Punkte etwas aus der Erinnerung, da das letzte Woche war)

    Nun habe ich soweit alles fertig und wenn ich jetzt starten will, dann kommt folgende Meldung:

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
    Fehler BC30109 '"frm_EmailCollect" ist ein Klassentyp und kann nicht als Ausdruck verwendet werden. EBL_EMail4SWVerw C:\VSProjects\Konsolenanwendungen\EBL_EMail4SWVerw\EBL_EMail4SWVerw\My Project\Application.Designer.vb 35 Aktiv


    Dann habe ich den Fehler einmal angeklickt und ich komme in die Application.Designer.vb die folgenden Inhalt hat.

    VB.NET-Quellcode

    1. '------------------------------------------------------------------------------
    2. ' <auto-generated>
    3. ' Dieser Code wurde von einem Tool generiert.
    4. ' Laufzeitversion:4.0.30319.42000
    5. '
    6. ' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
    7. ' der Code erneut generiert wird.
    8. ' </auto-generated>
    9. '------------------------------------------------------------------------------
    10. Option Strict On
    11. Option Explicit On
    12. Namespace My
    13. 'HINWEIS: Diese Datei wird automatisch generiert und darf nicht direkt bearbeitet werden. Wenn Sie Änderungen vornehmen möchten
    14. ' oder in dieser Datei Buildfehler auftreten, wechseln Sie zum Projekt-Designer.
    15. ' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Mein Projekt" im
    16. ' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor.
    17. '
    18. Partial Friend Class MyApplication
    19. <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
    20. Public Sub New()
    21. MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
    22. Me.IsSingleInstance = false
    23. Me.EnableVisualStyles = true
    24. Me.SaveMySettingsOnExit = true
    25. Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
    26. End Sub
    27. <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
    28. Protected Overrides Sub OnCreateMainForm()
    29. Me.MainForm = Global.EBL_EMail4SWVerw.frm_EmailCollect
    30. End Sub
    31. End Class
    32. End Namespace


    Fehlerhaft soll die Zeile 34 sein.

    Meine Form fängt wie folgt an:

    VB.NET-Quellcode

    1. Imports System.Data.SQLite
    2. Imports Microsoft.Data.Sqlite
    3. Public Class frm_EmailCollect
    4. Private _What2Outlook As PrgType = PrgType.None
    5. Private _SqLiteDB As String = ""
    6. Public Enum PrgType
    7. None


    In der Anwendungseinstellung gibt es aber auch nur eine Möglichkeit der Auswahl:



    Alternativ hatte ich versucht nochmal ein neues Projekt anzulegen. Aber dort kommt auch diese Meldung von oben.

    Kann mir einer weiterhelfen?

    Gruß Jan
    Bei einer normalen WinForms-App sollte das passen. Aber was hat es mit dem Vorschaltmodul auf sich? Ist das in der selben Projektmappe? Wie wird dieses Modul aufgerufen, wie startet es die WinForms-App? Die Screenshots geben dazu keine Hinweise.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Moin!

    erst einmal danke.

    Das Vorschaltmodul soll einige Pfade abprüfen und wenn nich die Anwendung beenden. Wenn ich den Teil in das Load-Event packe kann kann ich die App nicht abbrechen ohne das der Dialog erst erscheint. Jedenfalls ist mir bisher kein anderer Weg bekannt.

    Beides liegt in einer Projektmappe.



    In dem Modul steht folgendes:

    VB.NET-Quellcode

    1. Imports System.Windows.Forms
    2. Module main
    3. Public _k_DirectoryOfSoftwareVerw As String = "X:\AcadKonfiguration"
    4. Public _k_FilenNameSqLite As String = "Organisation.db"
    5. Public Sub Start()
    6. If System.IO.Directory.Exists(_k_DirectoryOfSoftwareVerw) = False Then
    7. MessageBox.Show("Kann Verzeichnis der Softwareverwaltung nicht finden !" & Environment.NewLine & "Verzeichnis:= " & _k_DirectoryOfSoftwareVerw)
    8. Exit Sub
    9. End If
    10. Dim FullFileName As String = System.IO.Path.Combine(_k_DirectoryOfSoftwareVerw, _k_FilenNameSqLite)
    11. If System.IO.Directory.Exists(FullFileName) = False Then
    12. MessageBox.Show("Kann SQLite-DB der Softwareverwaltung nicht finden !" & Environment.NewLine & "Datei:= " & FullFileName)
    13. Exit Sub
    14. End If
    15. Dim f As New frm_EmailCollect(FullFileName)
    16. With f
    17. .ShowDialog()
    18. End With
    19. End Sub
    20. End Module


    Aber das mit dem Starten kann ja noch nicht entscheidend zu sein, da die Meldung vor dem Starten der Anwendung angezeigt wird.

    ?????

    Gruß Jan
    Ich vermute mal, dass Du in Deiner frm_EmailCollect nur einen parameterhaften Konstruktor hast:

    VB.NET-Quellcode

    1. Public Sub New(FileName As String)

    Du brauchst aber auch einen parameterlosen, sonst geht das nicht.
    Alternativ zum parameterhaften Konstruktor eine Init-Prozedur:

    VB.NET-Quellcode

    1. Public Sub InitializeForm(FileName As String)
    und das Teil dann vor dem Dialogstart im Modul noch zusätzlich aufrufen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    jan99 schrieb:

    VB.NET-Quellcode

    1. Me.MainForm = Global.EBL_EMail4SWVerw.frm_EmailCollect
    Das ist ein sau blöder Fehler, hatte ich auch schjon mal.
    Probierma, im Projekt eine andere Form als Startform zu hinterlegen.
    Wenn das dann geht, schalte zurück auf Deine eigentliche Startform.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!