Windows Form nach Option Strict ON nicht aufrufbar

  • VB.NET

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von KenJy_L4F.

    Windows Form nach Option Strict ON nicht aufrufbar

    Hallo Leute... ._.

    Mir bleibt langsam der Athem weg und Google, Bücher oder andere Probleme haben mir nicht die lösung gebracht...
    Ich habe das problem, dass ich (nach der Empfehlung in meinem Letzten post) die Option Strict funktion nun eingeschaltet habe.
    Ich musste sehr viel Code ändern und wenn ich nun den Media Player aufrufen möchte, bekomme ich eine fehler meldung.

    Ich hoffe das die paar Zeilen hier hilfreich sein könnten...
    Code zum aufrufen der MediaPlayer Form:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Threading
    3. Private Sub ptbMediaPlayer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ptbMediaPlayer.Click
    4. If DoesExistWMdll = 2 Then 'DoesExistWMdll ist eine Variable die auf 2 gesetzt wurde wenn beide nötigen .dll Datein vorhanden sind (ist True)
    5. 'Player.FromArg = False
    6. Player.Location = Me.Location
    7. Player.Show()
    8. Me.Hide()
    9. Else
    10. MsgBox("Es sind einige dll Dateien nicht vorhanden!" & vbCrLf & _
    11. "Bitte starten sie das Programm mit Administratorrechten," & vbCrLf & _
    12. "damit das Programm die benötigten dll Dateien downloaden kann.", MsgBoxStyle.Critical, "Error!")
    13. End If
    14. End Sub




    Form_Load ereigniss in der MediaPlayer Form:

    VB.NET-Quellcode

    1. Imports WMPLib
    2. Imports System.IO
    3. Imports System.Threading
    4. Private Sub Player_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. '_____________________Buttons Richtig Anzeigen______________________
    6. Me.btnPlay.Visible = True
    7. Me.btnPause.Visible = False
    8. Me.btnStop.Enabled = False
    9. Me.btnResume.Visible = False
    10. '_____________________Buttons Richtig Anzeigen______________________
    11. '________________Media Player Einstellungen Laden.._________________
    12. WMPlayer.settings.volume = My.Settings.WINMPVolume
    13. TrackBar1.Value = My.Settings.WINMPVolPegel
    14. '________________Media Player Einstellungen Laden.._________________
    15. '_________________Setzt den Title namen auf nichts__________________
    16. TitleName.Text = "Bitte einen Titel hinzufügen und auswählen"
    17. '_________________Setzt den Title namen auf nichts__________________
    18. '__________________________Position setzen__________________________
    19. Me.Location = Form1.Location
    20. '__________________________Position setzen__________________________
    21. End Sub


    Ich hoffe das mir dabei jemand helfen kann... Wenn nötig kann ich auch den ganzen Code posten. Komisch ist nur dass ich die anderen forman abrufen kann...

    Grüße
    KenJy
    Bellum et Pax.
    Omne initium est difficile.
    -KenJy ;D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „KenJy_L4F“ ()

    sonne75 schrieb:

    Und was ist das??
    Die 2. Form wird an derselben Stelle angezeigt wie die alte. :D
    @KenJy_L4F: Gugst Du hier.
    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!
    Sieht mir ais wie die Startform, bin mir aber nicht ganz sicher.
    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!
    Jetzt habe ich es auch gesehen. :)

    KenJy_L4F schrieb:

    VB.NET-Quellcode

    1. Private Sub ptbMediaPlayer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ptbMediaPlayer.Click
    2. If DoesExistWMdll = 2 Then 'DoesExistWMdll ist eine Variable die auf 2 gesetzt wurde wenn beide nötigen .dll Datein vorhanden sind (ist True)
    3. Dim PlayerForm As New Player
    4. 'PlayerForm.FromArg = False
    5. PlayerForm.Location = Me.Location
    6. PlayerForm.Show()
    7. Me.Hide()
    8. ....




    Und das mit Location in deiner Player-Form nimmst du weg.
    Es geht darum, dass Player deine Klasse ist und nicht die Form. Die Form musst du erst erzeugen (Dim PlayerForm As New Player) und dann mit dem Objektnamen (PlayerForm) ansprechen. Habe dir doch weiter oben den Code dafür angehängt.
    Wie genau ist dein Projekt denn nun aufgebaut?
    In deiner IDE müsstest du normalerweise etwas in der "Fehlerliste" sehen, immer. Bevor du kompilierst solltest du da immer zuerst rein schauen..


    Aber momentan ist es so das dein Programm startet?
    Und du dann eine zweite Form aufrufen möchtest??

    KenJy_L4F schrieb:

    verstehen gerade nur Bahnhof... v_v
    Da steht drin, wie Du ordentlich Dialoge / Formen instanziierst und aufrufst uns auf deren Member zugreifst.
    Ausgangspunkt war eine Codezeile von Dir, in der Form1.Location drin stand. Das ist einfach falsch.
    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!
    @Confuzi Us In meiner IDE steht nichts wenn ich das Programm starte. erst wenn ich den Player aufrufe bekomme ich eine Fehlermeldung

    @sonne75 nun bekomme ich die Fehlermeldung beim deklarieren einer Variable in der Player Form. Sie wird direkt nach Public Class deklariert

    VB.NET-Quellcode

    1. Dim Media As WMPLib.IWMPMedia3 = CType(AxWindowsMediaPlayer1.currentMedia, WMPLib.IWMPMedia3)
    Bellum et Pax.
    Omne initium est difficile.
    -KenJy ;D
    Okay sorry. dass war dumm von mir. Ich bekomme die Fehler meldung:

    Quellcode

    1. "Eine nicht behandelte Ausnahme des Typs "System.NullRefecenceException" ins in Programm.exe aufgetreten"


    und wenn ich die .exe direkt starte diese Fehlermeldung:

    Quellcode

    1. ************** Ausnahmetext **************
    2. System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    3. bei Leaders4Fun.Player..ctor() in G:\Programme\_Programm\Prog\Prog\Player.vb:Zeile 15.
    4. bei Leaders4Fun.Form1.ptbMediaPlayer_Click(Object sender, EventArgs e) in G:\Programme\_Programm\Prog\Prog\Form1.vb:Zeile 336.
    5. bei System.Windows.Forms.Control.OnClick(EventArgs e)
    6. bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    7. bei System.Windows.Forms.Control.WndProc(Message& m)
    8. bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    9. bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    10. bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    Bellum et Pax.
    Omne initium est difficile.
    -KenJy ;D

    KenJy_L4F schrieb:

    bei Leaders4Fun.Player..ctor() in G:\Programme\_Programm\Prog\Prog\Player.vb:Zeile 15.
    bei Leaders4Fun.Form1.ptbMediaPlayer_Click(Object sender, EventArgs e) in G:\Programme\_Programm\Prog\Prog\Form1.vb:Zeile 336.


    Wie wäre es damit, dass du den Code von diesen Zeilen postest (und ein bisschen oben und unten davon)? Oder sollen wir immer noch raten?
    Form1.vb:Zeile 334-338 :

    VB.NET-Quellcode

    1. 'Player.FromArg = False
    2. 'Player.Location = Me.Location
    3. Dim PlayerForm As New Player
    4. Player.ShowDialog()
    5. Me.Hide()


    Player.vb:Zeile 15:

    VB.NET-Quellcode

    1. Dim Media As WMPLib.IWMPMedia3 = CType(AxWindowsMediaPlayer1.currentMedia, WMPLib.IWMPMedia3)


    Sorry. ich weiß das ich nicht viel information gebe. Aber ich weiß nicht was wichtig ist... v_v
    Bellum et Pax.
    Omne initium est difficile.
    -KenJy ;D
    Poste mal den ganzen Code von deiner Player-Form, wird wohl nicht so viel sein.

    EDIT: Sehe gerade, das kann gar nicht sein, in der Fehlermeldung sind ganz andere Funktionen anmeckert als du postest.

    Quellcode

    1. bei[b] Leaders4Fun.Player..ctor() [/b]in G:\Programme\_Programm\Prog\Prog\Player.vb:Zeile 15.
    2. bei [b]Leaders4Fun.Form1.ptbMediaPlayer_Click(Object sender, EventArgs e)[/b] in G:\Programme\_Programm\Prog\Prog\Form1.vb:Zeile 336.