Auf Player zugreifen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von JoeyPlayzTV.

    Auf Player zugreifen

    Hallo liebe community ich habe Folgendes Problem ich habe in der Form1 einen Media Player und eine Form2 nun möchte ich das wenn ich auf der form2 einen Button drücke das der Media Player geschlossen wird in so etwa


    VB.NET-Quellcode

    1. Form1
    2. Public sub closePlayer()
    3. MediaPlayer1.close()
    4. End Sub
    5. Form2
    6. Private Sub closePlayer()
    7. Dim Form as new Form1
    8. Form. closePlayer()
    9. End Sub



    Es passiert aber nix wie kann ich den PLayer closen bzw wie greife ich frauf zu bitte um hilfe
    Meine Programme
    TrackBoard 4 Music-Player Software
    Download:
    Klicke hier!

    Gib Deiner einen Form-Klasse ein Event, das Du über die Instanz Deiner Form abonnierst und feuere das, sobald der Button gedrückt wird. Dann kannst Du darauf reagieren und Deine passende Aktion ausführen.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    JoeyPlayzTV schrieb:

    Dim Form as new Form1
    Form. closePlayer()
    Die neue Form1 (New Form1) hat keinen offenen Player, der sich schließen ließe.
    Die Form2 benötigt die Information, wo die bestehende Form1 zu finden ist.

    Wie wird Form2 instantiiert?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Trade schrieb:

    Gib
    Deiner einen Form-Klasse ein Event, das Du über die Instanz Deiner Form
    abonnierst und feuere das, sobald der Button gedrückt wird. Dann kannst
    Du darauf reagieren und Deine passende Aktion ausführen.

    Grüße


    Hast du ein beispiel für mich mit events habe ich mich noch nie auseinander gesetzt lerne vb erst bin eig java dev




    Instanciert wird noch garnix der player ist als control eingebettet in java könnte ich mir in der form1 ne instace erstellen aber wie mache ich mir ne instace von der form1 in vb
    Meine Programme
    TrackBoard 4 Music-Player Software
    Download:
    Klicke 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!
    @JoeyPlayzTV Dieser Code soll Dir zeigen, wie sich zwei Forman unterhalten konnen.
    Vielleicht fängst Du mit etwas einfacheren Fingerübungen an: [Sammelthread] Programmieren, aber was? (Programmideen)
    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!

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

    Programmidee habe ich du kannst dir mein Programm ja mal anschauen *Programme nur im Showroom!* ansich habe ich vb erfahrung aber halt probleme mit der Kommunikation von forms könntest du evtl ein kleines beispiel machen wo du es anhand meines vorhaben erklärst währe dir sehr dankbar
    Meine Programme
    TrackBoard 4 Music-Player Software
    Download:
    Klicke hier!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    JoeyPlayzTV schrieb:

    ansich habe ich vb erfahrung aber halt probleme mit der Kommunikation von forms
    Forms sind auch nur Klassen. Insofern beschränkt es sich auf Kommunikation zwischen Klassen bzw. besser Objekten (da Klassen ja nur Pläne sind). Und mit Erfahrung in VB.NET sollte event-basiertes Arbeiten eigentlich kein Problem darstellen, da Du ja Deine Klasseninstanz hast.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Kannst du mir bitte ein beispiel geben damit ich das verstehe in dem Thread von RodFromGermany wird zwar erklärt wie ich ein event mache aber nicht wie ich damit was auslöse ich brauche bitte einfach ein beispiel



    Habe Form 2

    VB.NET-Quellcode

    1. Private Sub options_close_option_Click(sender As Object, e As EventArgs) Handles options_close_option.Click
    2. Me.Close()
    3. RaiseEvent test()
    4. End Sub
    5. Public Event test()




    Und will von form2 in form 1 das Auslösen

    VB.NET-Quellcode

    1. Public Sub closePlayertoClearCache()
    2. trackboard_music_player.close()
    3. End Sub

    VB.NET-Quellcode



    ES geht nicht mir wird nix angeboten





    Meine Programme
    TrackBoard 4 Music-Player Software
    Download:
    Klicke hier!

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

    Hier gibts was zum Thema Events:
    Alles über Events
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    VB.NET-Quellcode

    1. ​Public Class Form1
    2. Public Sub DoIt()
    3. Dim f As New Form2()
    4. AddHandler f.EventTriggered, AddressOf EventTriggeredHandler
    5. f.Show()
    6. End Sub
    7. Public Sub EventTriggeredHandler(sender As Object, e As EventArgs)
    8. MessageBox.Show("In Form2 wurde ein Ereignis ausgelöst.")
    9. End Sub
    10. End Class
    11. Public Class Form2
    12. Public Event EventTriggered(sender As Object, e As EventArgs)
    13. Public Sub Trigger()
    14. RaiseEvent EventTriggered(Me, EventArgs.Empty)
    15. End Sub
    16. End Class


    Irgendwie so. Kann nicht mehr so gut VB.NET. Unter Umständen musst Dir tw. Definitonssyntax selber raussuchen. Das sollte reichen.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Das Problem ist nur das die Form1 bereits offen ist ich will von von form2 auf meinen player in Form1 zugreifen Form1 ist startform

    ich bin einfach zu blöd ich brauche ein beispiel direct an meiner problematic
    Meine Programme
    TrackBoard 4 Music-Player Software
    Download:
    Klicke hier!

    JoeyPlayzTV schrieb:

    Das Problem ist nur das die Form1 bereits offen ist
    Wieso ist das ein Problem? Gerade weil Form1 ja Startform ist (bzw. Parent von Form2) kannst Du das genau so umsetzen. Mein Code ist eigentlich schon die fertige Lösung für Dein Problem. Also mehr geht nun wirklich nicht.

    Wenn Du bereits Java kennst, dann sollte das für Dich von der Architektur her auch kein Problem darstellen. Ich meine, das ist nichts anderes als das Observer-Pattern, nur dass Du den Mist mit den Interfaces und Vererbung nicht brauchst und direkt Events nutzen kannst. Von der Kommunikation her ist das im Endeffekt genau dasselbe.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    das Problem ist nur das ich die form2 im designer habe und ich auf eine bereits bestehende instance zugreifen möchte und keine Neue über new erstellen Will Form1 existiert und ich will auf diese zugreifen bzw alle controls zugreifen
    Meine Programme
    TrackBoard 4 Music-Player Software
    Download:
    Klicke hier!

    Über einen Button einfach so meineform.Show()

    habe es es so gelöst meineform.MediaPlayer.close() (Auch wenn das nicht das sauberste ist aber alle anderen sachgen die hier Vorgeschlagen wurden funktionieren nicht mit meinem problem)
    Meine Programme
    TrackBoard 4 Music-Player Software
    Download:
    Klicke hier!

    JoeyPlayzTV schrieb:

    Über einen Button einfach so meineform.Show()
    Da liegt schon Dein grundlegendes Problem. Daher nochmal: Dialoge: Instanziierung von Forms und Aufruf von Dialogen

    JoeyPlayzTV schrieb:

    habe es es so gelöst meineform.MediaPlayer.close()
    Nein, nein. Das geht so gar nicht. Das verletzt sämtliche Regeln des OOP-Prinzips.

    JoeyPlayzTV schrieb:

    aber alle anderen sachgen die hier Vorgeschlagen wurden funktionieren nicht mit meinem problem
    Das stimmt absolut nicht. Die funktionieren sogar sehr gut und sind die saubere Variante, um das zu lösen. Du musst es halt nur richtig einbauen. Dazu zählt natürlich auch von Grund auf sauber zu instanziieren. Jetzt siehst Du nämlich selber, warum dieses VB6-Kompatiblitätszeugs nur Probleme macht. Wie willst Du damit nämlich gescheite Klassenkommunikation realisieren? Richtig, gar nicht.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich muss mich bei dir Entschuldigen dein Code klappt super habe den blos nicht verstanden erst nach dem testen ergab er für Für mich sinn Vielen dank



    Hier noch mal für alle und das ich dummkopf das auch verstehe

    Also ZUerst beginnen wir damit das wir 2 Formen erstellen, eine nennen wir Form1 und die andere Form2

    In der Form1 gibt es Ein Control von dem wir die Visible ändern wollen zu nächst Erstellen wir uns in der Form1 Einen button dieser soll die Form2 Öffnen
    soweit so gut wir brauchen aber noch ein Event in der Form2 was Ausgelöst werden soll dieses nenne ich meinEvent so erstellen wir das Event in der Form2

    VB.NET-Quellcode

    1. Public event MeinEvent(sender as Object, e as )



    Jtzt gehen wir in einen Button der Form2 und Führen dort dieses Event aus

    hier der Code der in den Button in Form2 Soll

    VB.NET-Quellcode

    1. RiseEvent MeinEvent(Me, EventArgs.Empty)


    das Wars mit der Form2

    Zurück zur Form1

    In den Button der Form1 kommt das hier

    VB.NET-Quellcode

    1. Dim form as new Form2
    2. #Hier erstellen wir uns eine Instance der Form2
    3. Addhandler form.MeinEvent, AddressOff
    4. form.show()


    VB.NET-Quellcode

    1. Public sub dasSollPassieren()
    2. #Hier wirde auch die Visible geändert
    3. MsgBox("Ja es funktioniert")
    4. End Sub






    Meine Programme
    TrackBoard 4 Music-Player Software
    Download:
    Klicke hier!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „JoeyPlayzTV“ ()