vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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
Prozeduraufruf aus einer anderen Form 
Autor: alcyone
Datum: 09.04.09 12:26

Hallo liebe Leute

Ich habe ein Programm mit einem Hauptfenster von welchem sich verschiedene Formulare öffnen lassen. Z.B. eine Form zum Buchen von Arbeitszeiten auf welchem man u.a. einen Namen aus einer Listbox auswählt.
Um dieses Fenster zu öffnen hatte ich ursprünglich folgenden Code:

Buchung.Show
Die Listbox auf dieser Form soll sich automatisch aktualisieren, wenn ich z.B. einen neuen Mitarbeiter anlege. Dafür habe ich auf die Form "Buchung" wie folgt zugegriffen:

Buchung.ListboxRefresh
'ListboxRefresh ist eine Prozedur in Buchung, welche die Listbox aktualisiert. 
' Die Daten stammen aus einer Datenbank
Da ich aber öfter las, daß man die Form nicht direkt aufruft und ich auch mehrere Fenster öffnen möchte habe ich jetzt folgenden Code:

Dim frmBuchung as New Buchung
frmBuchung.Show
Nun sollen sich alle Mitarbeiter-Listboxen in den Buchungsfenster aktualisieren, wenn ich (wie gehabt) einen neuen Mitarbeiter anlege. Dies habe ich dann so gelöst:

For Each f As Form In Application.OpenForms
  If f.Name = "Buchung" then
    For Each c as Control In c.Controls
      If c.Name = "btnAktualisieren" then 'btnAktualisieren ist ein Button auf 
      ' der Form 'Buchung' der ListboxRefresh aufruft
        Dim b as Button = CType(c, Button)
        b.PerformClick
      End If
    Next
  End If
Next
Wenn ich nun keinen Button zum Aktualisieren bzw. zum Aufrufen von ListboxRefresh habe, funktioniert dieser Code nicht, da ich ListboxRefresh nicht direkt aufrufen kann. Ich habe dann folgendes ausprobiert, welcher zu meinem erstaunen funktioniert. Alle Listboxen werden in den Buchungsfenstern aktualisiert:

For Each f As Form In Application.OpenForms
  If f.Name = "Buchung" then
    Dim frmBuchung as new Buchung
    frmBuchung.ListboxRefresh
    frmBuchung.Dispose
  End If
Next
Jetzt meine Fragen:
1. Warum funktioniert dies. Ich deklariere mit "New" eine neue Form 'Buchung' und löse auf dieser ListboxRefresh aus. Warum wird es auch auf allen Formen ausgelöst?
2a. Die Sub 'ListboxRefresh' muß ich mit Public öffentlich machen. Ist dies OK bzw.
2b. ist der vorletzte und letzte Code legitim?
3. Wenn der letzte Code verwendbar ist, sollte ich Dispose einsetzen?
4. Nach was muß ich suchen um mehr Informationen zu diesem Thema zu finden?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Prozeduraufruf aus einer anderen Form1.201alcyone09.04.09 12:26
Re: Prozeduraufruf aus einer anderen Form832ModeratorDaveS09.04.09 13:20
Re: Prozeduraufruf aus einer anderen Form716alcyone09.04.09 15:08
Re: Prozeduraufruf aus einer anderen Form699ModeratorDaveS09.04.09 15:22
Re: Prozeduraufruf aus einer anderen Form739alcyone09.04.09 20:39
Re: Prozeduraufruf aus einer anderen Form742alcyone10.04.09 13:19
Re: Prozeduraufruf aus einer anderen Form978ModeratorDaveS10.04.09 14:09
Re: Prozeduraufruf aus einer anderen Form709alcyone10.04.09 15:36
Re: Prozeduraufruf aus einer anderen Form791alcyone11.04.09 07:33
Re: Prozeduraufruf aus einer anderen Form747alcyone11.04.09 11:35

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