Refresh des StatusStrip

Kannst du mir denn sagen wie das mit dem Reference funktioniert? Das wäre super.

@ Delegate:

Sorry Funktion ist da jetzt etwas verwirrend. Du meinst mit Funktion -> Sub. ich mein mit Funktion -> Function.

Und das hat nicht geklappt. Ich vermute mal, weil die Function Daten in einen beliebigen Typ zurückliefert...
 
Kannst du mir denn sagen wie das mit dem Reference funktioniert? Das wäre super.
Wie du Parameter übergeben kannst weißt du doch sicherlich oder?
Und du übergibst zum Beispiel dem Konstruktor deiner zweiten Klasse das Form-Objekt (in VB glaub ich Me innerhalb der Klasse) als Referenz (ByRef)

Sorry Funktion ist da jetzt etwas verwirrend. Du meinst mit Funktion -> Sub. ich mein mit Funktion -> Function.

Und das hat nicht geklappt. Ich vermute mal, weil die Function Daten in einen beliebigen Typ zurückliefert...
Eine Sub ist auch nur eine Funktion nur mit ohne speziellen Rückgabetyp, sprich void.
Auch Prozedur genannt.
 
Wie du Parameter übergeben kannst weißt du doch sicherlich oder?
Und du übergibst zum Beispiel dem Konstruktor deiner zweiten Klasse das Form-Objekt (in VB glaub ich Me innerhalb der Klasse) als Referenz (ByRef)

Hm... Also der Konstruktor ist doch Sub.New() oder? Soll ich das jetzt so machen:

Code:
Public Class Datenverarbeitung
  
    Sub New(ByRef RückgabeForm As Form)

    End Sub

Blöde frage eigentlich, denn es funktioniert so nicht. Wie soll ich das übergeben?
 
Schau Dir mal bitte in unser [thread=185977]Datenaustausch zwischen zwei Forms - Tutorial[/thread] an. Aber vorsicht, Eine Klasse so zu gestalten, dass sie mit der Referenz eine Forms arbeitet, macht sie für weitere Zwecke unbrauchbar. Es währe zudem nicht im Sinne der OOP. Wenn es aber 2 oder mehrere Forms sind, die sowieso nur in dem selben Projekt existieren, kann man das schon so machen.
[post=1312433]AW: Objekt an Form übergeben - Post[/post]

Btw. muss man in etwa VB explizit angeben ob ein Referenztyp als Referenz weitergereicht werden soll? ByVal sollte doch reichen... :confused:
 
Zuletzt bearbeitet:
Dank dir Cosmo.

Erreiche ich damit denn auch, dass ich die Controls des Formulars in der anderen Klasse verfügbar habe bzw. diese ansprechen und werte setzen kann? Oder kann ich so nur Informationen an eine andere Klasse schicken?

Für mich ist der Quellcode nicht ganz leicht zu lesen, da ich mich mit C# noch nicht so 100%ig im Syntax zurecht finde. Hab mir jetzt mal mit nem Code Converter geholfen.

Kann mir jemand vielleicht nur kurz den Konstruktor meiner "neuen" Klasse schreiben, bzw. wie der aussehen muss damit ich die Controls des Forms verwenden kann?

Danke allgemein für eure super und schnelle Hilfe! Ihr seid echt auf Draht! :)

Mfg

Dennis
 
Ich probiers mal. VB ist jedoch nicht meine Stärke, sollte aber so vom Sinn her passen
Code:
Sub New(ByRef parentForm As Form)
         me.parentForm = parentForm
         ' some other code
End Sub
 
Danke Nico! Das hat jetzt geklappt!

Aber direkt eine 2. Frage:

Ich rufe von der 1. Form aus eine 2. auf. Und diese wiederum ruft eine Methode aus meiner o.g. Klasse auf. Bevor allerdings die 2. Form die Methode aufruft, blendet sie sich selbst aus via

Code:
me.hide.

Mein Problem ist jetzt (wieder) das die Methode keinen Zugriff auf die erste Form hat. Ich habe versucht die erste Form mit an die 2. zu übergeben, sodass diese sie an die Methode weitergibt, aber vergebens.

Was muss ich da tun?

Danke vorab.

Dennis
 
Hi

Ich versteh nicht dich nicht wirklich. Prinzipiell scheint das das selbe Szenario wie oben zu sein. Poste doch mal deinen Code. Kommen evtl. Fehlermeldungen? Hast du mal debugged und überprüft, ob die Form auch verfügbar ist?
 
Hast du mal debugged und überprüft, ob die Form auch verfügbar ist?

Was heisst verfügbar? Beim Debuggen ist das Form nach dem ausblenden des 2. Sichtbar, falls du das meinst.

Sub New aus der Klasse:

Code:
Sub New(ByVal RückgabeForm As frmKundenliste)
        MyBase.new()
        Me.RückgabeForm = RückgabeForm
    End Sub

Aufruf der 2. Form von der 1. aus.

Code:
Dim frmNewKunde As New frmNeuerKunde(Me)
        frmNewKunde.Show()

Sub New der 2. Form

Code:
 Sub New(ByVal Rückgabeform As frmKundenliste)
        InitializeComponent()

        Me.rückgabeform = Rückgabeform
    End Sub

Aufruf der Klassenmethode aus der 2. Form

Code:
Me.Hide()

Dim Daten As New Datenverarbeitung(frmKundenliste)
Daten.KundeninMDBÜbernehmen(....)

Ich hoffe Ihr versteht mich jetzt... Ist etwas kompliziert zu beschreiben.

Danke

Dennis
 
Ja nee, kompliziert ist das nicht

Ich finde aber nirgends einen Zugriff auf rückgabeForm in der Klasse frmNewKunde.

Darf ich dich nochmal an die beiden von cosmo verlinkten Threads verweisen. Darin ist das eigntlich alles erklärt.
 
Zurück