vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Text in Form durch Modul ändern 
Autor: bierhurra
Datum: 28.08.12 19:32

Public Class Form1
    Public Sub StatusOrdner_aktualisieren(Inhalt As String)
        MsgBox(Inhalt)
        Me.StatusOrdner.Text = Inhalt
        MsgBox("neu" & StatusOrdner.Text)
        Me.StatusOrdner.Refresh()
    End Sub
 
    Private Sub StatusOrdner_TextChanged(sender As Object, e As _
      System.EventArgs) Handles StatusOrdner.TextChanged
        Me.StatusOrdner.Text = Me.StatusOrdner.Text
        Me.StatusOrdner.Refresh()
        MsgBox("neu2 " & StatusOrdner.Text)
    End Sub
end class
 
 
Module module1
    Sub Datei_auslesen(Datei As Object, e As FileSystemEventArgs)
        Form1.StatusOrdner_aktualisieren(e.Name)
    End Sub
end module
Der Code ist nur ein Auszug.
In meinem Modul laufen eventhandler.
In dem sub Datei_auslesen liefert e.name einen string für einen Dateinamen zurück.
Dieser Dateiname soll im Formular angezeigt werden.
Ich habe mehrer Varianten durchprobiert. Der Text wird nicht angezeigt. Ich habe die MsgBox eingebaut um die Strings zu sehen. Der Name der Datei wird an des Textfeld übergeb. Er lässt sich wieder auslesen und wird in der
MsgBox("neu2 " & StatusOrdner.Text)
richtig dargestellt.
Nur in der Form ist er nicht zu sehen, trotz refresh und update.
Was mache ich falsch?

Wenn ich aus der Formular Class das TextChanged anstoße, dann wird der Text richtig angezeigt. Dazu habe ich einen Button eingebaut, welcher den Text ändert. Dies funktionierte. Warum bekomme ich auch dem Modul den Text nicht zur Anzeige?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text in Form durch Modul ändern 
Autor: ModeratorFZelle (Moderator)
Datum: 28.08.12 20:35

Weil das der komplett falsche weg ist.

1. Ein Modul sollte man nur benutzen wenn man weis was man tut.
2. Die Defaultinstanzen ( mal hier nach dem Begriff suchen ) sollte man niemals benutzen.
3. Von ausserhalb solltest du niemals auf Internas der Form zugreifen.
4. Statische Eventhändler in Modulen sind auch alles andere als sinnvoll oder wartbar.

Wozu meinst du das so machen zu wollen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text in Form durch Modul ändern 
Autor: bierhurra
Datum: 28.08.12 20:43

Ich dachte es sei clever den code in ein modul auszulagern.

Du meinst es wäre sinvoller alles mit in die class der form zu packen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text in Form durch Modul ändern 
Autor: ModeratorFZelle (Moderator)
Datum: 28.08.12 22:01

Nein, es ist nie sinnvoll alles zusammenzupacken.
Es ist aber auch nicht sinnvoll irgendwas einfach in statische Module auszulagern.

Es kommt also auf den Einzelfall an, weshalb ich fragte was das ergeben soll.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text in Form durch Modul ändern 
Autor: bierhurra
Datum: 28.08.12 22:51

Ich Überwache den Ordner von meinem Windows Mediacenter auf neue aufgezeichnete Dateien. Dafür sind die Event Handler.
Wenn ich eine neue Datei erkannt habe, muss ich prüfen ob die Video Datei in Ordnung ist (weil es regelmäßig Probleme mit dem Tuner gibt und ich diesen dann Neustarten muss). Die Unversehrtheit der Videodateien habe ich noch nicht im Griff. (Das API Codex Pack habe ich noch nicht ganz verstanden) Die Datein werden auf Festplatte gestreamt. Ich dache ich mache es über die Dateigröße, welche ja bei Aufzeichnen anwachsen sollte um auf die Unversehrtheit zu schließen. Dies funktioniert aber nicht bei der Aufzeichnung, sonder erst wenn sie beendet ist. Das liegt am Streaming Dienst von Microsoft.
Also muss ich die Eigenschaften der Videodateien auslesen. Dafür wollte ich noch eine Form. Da das Tool rund um die Uhr im hinergrundläuft, möchte ich bestimmte Statusmeldungen permantnet sehen.

Ich habe bis jetzt nur in VBA programmiert, da war einiges erheblich einfacher gestrickt. Da habe ich auch schon Header Daten von Videos eingelesen. Das hilft mir jetzt aber nicht weiter.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text in Form durch Modul ändern 
Autor: ModeratorFZelle (Moderator)
Datum: 29.08.12 09:51

Das erklärt vieles.

Erstelle dir eine Klasse ( nicht Modul ) das die Eventhandler enthält, und die die Funktionalität beinhaltet.
Erstelle darin auch ein eigenes Event das den Status meldet.

Diese Klasse instantiierst ( new Klasse() ) Du dann und abbonierst von den Forms aus dieses Event.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Text in Form durch Modul ändern 
Autor: bierhurra
Datum: 30.08.12 20:15

Danke für deine Hinweise.

Jetzt alles in einer Klasse und es funktioniert tadellos. Wenn ich "class" gelesen habe, dachte ich immer es ist der class der Form gemeint. Jetzt bin ich ein gutes Stück weiter.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel