myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Entwicklung (https://www.mycsharp.de/wbb2/board.php?boardid=3)
-- GUI: Windows-Forms (https://www.mycsharp.de/wbb2/board.php?boardid=24)
--- Form wechseln u. Daten übergeben (https://www.mycsharp.de/wbb2/thread.php?threadid=23047)


Geschrieben von GNewmann am 03.08.2006 um 10:00:
  Form wechseln u. Daten übergeben
Hallo Liebe Leutz,

ich habe eine Frage, die auch schon öfters beantwortet wurde, jedoch würde ich gerne auch den Sinn dahinter verstehen.

Zum Verständnis.. in Form1 (Kundendaten z.B. Kundennummereingabe), kann der Benutzer auf ein Button klicken wo Form 2 aufgerufen wird wo er dann nach einem Kunden suchen kann in einer ListBox und diesen dann auswählen kann.

Dass klappt alles wunderbar, jedoch schließe ich nun die Form und sollte den Kunden den der Benutzer ausgewählt habe in die TextBox in Form1 eintragen.

Forms kann man, wie bekannt mit .Show aufrufen.

Nun will ich die Form aber komplett entladen und bei neuaufruf wieder laden.

Ich habe also nun die Form "Auftragsnummer" erstellt und ein Objekt davon "f2" erstellt.
bei f2.close() schließt er mir das Ganze Programm.. was ich nicht verstehen kann.

Nun habe ich die Form einfach auf visible gesetzt, momentan.

Kommen wir nun zum eigentlichen Problem.. dem übergeben des Wertes in der Form Auftragsnummer (f2) wieso muss ich da eigentlich ein Objekt von erstellen in Form1, damit ich endlich Zugriff habe.. ? ich kann doch auch einfach Form1.Show() schreiben und alles funktioniert.. bei dieser neu erstellten Form brauch ich aber ein Objekt von in Form1!?!?

Dass Problem, ist nun zu sagen: Wenn Form 2 schließt und der Benutzer einen Kunden ausgewählt hat, dann soll der Wert von Form 2 in Form 1 übertragen werden.

Viel Fragen für den Anfang, aber hier stehe ich momentan an so einem leichten Problem! und das Prog ist komplex.. traurig naja, an so kleinigkeiten lässt man sich aufhalten..

Gruß,
GNewmann


Geschrieben von rockthecity am 03.08.2006 um 10:55:
 
Hallo,

hier kannst du mal schauen.

 Von Form2 auf Form1 zugreifen.


Geschrieben von Rainbird am 03.08.2006 um 10:58:
  Forms Mysterien
Wenn durch das schließen eines Forumlars plötzlich die ganze Anwendung beendet wird, hast Du wohl das Startformular geschlossen. In der Main-Methode (programmeinstiegspunkt) wird ein bestimmtes Formular erzeugt und in eine Anwendungsschleife gestellt. Wenn dieses Formular geschlossen wird, springt er aus der Anwendungsschleife und das Programm ist beendet (Da die Main-Methode vollständig durchlaufen worden ist).

Zu Deiner Frage, warum man immer ein Objekt von Formx braucht: C# ist eine objektorientierte Sprache. Klassen sind nur die "Baupläne" der Objekte. Damit etwas wirklich "leben" kann, musst Du ein Objekt erzeugen. Das sollte aber alles in Deinem C# Buch stehen, welches Du hoffentlich gelesen hast.

Wie verschiedene Formulare Daten austauschen, steht hier:

 Kommunikation von 2 Forms


Geschrieben von GNewmann am 03.08.2006 um 11:20:
 
Vielen Dank für die Antworten..
ich muss aber dazu noch sagen, dass ich auf die Property meiner TextBox zugreifen will.

D.h. wenn ich die aktuelle Form schließe, soll in Form1.textBox1.Text = blabla
der Inhalt der Textbox geändert werden, da komm ich auch mit get und set nicht hin.. zumindest hab ich es bis jetzt in keinen der Beiträge gesehen.

Ich kann nicht den Wert public setzen oder mit get und set abfangen, zumindest hab ich das noch nicht gesehen.. dazu bräuchte ich ein Event wo erkennt, "ok, Form2 ist geschlossen nun darf ich (form1) den Wert in die Textbox eintragen"..
Aber ich will ja das Form2 der Form1 den Text so gesehen "reinknallt" also zwangsweise übergibt..

Ja, dass mit Objekten u.s.w scheint OOP zu sein :o) bin gerade dabei mich anzufreunden... ich bin halt skeptisch weil ich für Form 1 nirgends ein Objekt erstellt habe!? und für Form2 muss ich in Form1 ein Objekt erstellen!? wieso nicht noch anderstrum!?!? dass sind so die fragen bezügl. OOP.. zumindest bei der Form.. innerhalb einer Form komm ich damit gut klar :o)

Gruß,
GNewmann


Geschrieben von Rainbird am 03.08.2006 um 11:51:
  Objekte
Du hast wohl ein Objekt von Form1 erstellt. In der main-Methode (Bei VS2005 in der Program.cs).

Was Du da machen willst, hört sich haarstreubend an. Man greift nicht direkt auf Steuerelemente anderer Formulare zu. Wenn Du solche Sachen machst, hast Du bald einen riesen Krauthaufen. Form2 darf nicht direkt auf Form1 zugreifen. Angenommen Du willst Form2 an einer anderen Stelle mit Form3 verwenden, dann geht das nicht, da es direkt auf Form1 zugreifen will. Mach sowas blos nicht.

Vorschlag: Implementier Dein Suchfenster (Das mit der Kundennummer etc.) als Dialog und ruf es über eine statische Funktion auf. Dann kannst Du Parameter übergeben und kriegst auch welche zurück. Auf diese Art hast Du die Kundensuche ein einziges Mal implementiert und kannst sie von allen Formularen aufrufen, die Kunden suchen möchten.


Geschrieben von GNewmann am 03.08.2006 um 12:33:
 
Danke für die schnelle Antwort!

Hast du mir dazu Links, Tipps? Ich werde mich jetzt mal im Internet schlau machen, da ich mit Dialogen selten arbeite.

Danke.

Gruß,
GNewmann


Geschrieben von nic4x4 am 03.08.2006 um 12:58:
 
Du musst halt die Daten abkapseln:

C#-Code:
public string Fenstertext
{
    get { return this.Text; }
    set { this.Text = value; }
}

Link:
 http://www.galileocomputing.de/openbook/visual_csharp/visual_csharp_04_003.htm#Xxxobkap04003040017a91f0461b2

EDIT:
Ich könnt dir ein Beispiel für die InputBox schreiben, wenn du es dann noch nicht vestanden hast.


Geschrieben von GNewmann am 03.08.2006 um 13:31:
 
Die Dialoge sind doch bausteinartig zusammengesetzt, wobei ich die Form designt habe.. was für einen Tipp habt ihr mir so einen Dialog genauso aufgebaut wie die Form zu erstellen.. kann ich einen Dialog nicht in der Form bearbeiten? kreiren?

Wenn nicht, wie setzte ich ihn am besten zusammen ich habe eine ListBox mit vielen Events eine ComboBox und einen Button.. kann ich die Erstellung aus dem Code von meiner Form rauskopieren?

Wie ihr merkt, bin ich nicht so fit, wenn es um Formen und Dialoge geht :/

Gruß,
GNewmann

Edit: Danke, ein Beispiel wäre sehr hilfreich..


Geschrieben von Rainbird am 03.08.2006 um 14:09:
  Beispiel
Ich hab kurz ein Beispiel geschrieben:


Geschrieben von Rainbird am 03.08.2006 um 14:11:
  Screenshot
So sieht es aus.


Geschrieben von GNewmann am 03.08.2006 um 15:45:
 
Ihr seid ja prima! Vielen Vielen Dank!

Bin schon ganz gespannt auf den Quellcode.. der Screenshot sieht nämlich schon einmal Top aus!

Merci

Gruß,
GNewmann


Geschrieben von GNewmann am 03.08.2006 um 16:06:
 
Muss leider nochmal schreiben.

ich kriege folgende Fehlermeldung, wenn ich die Projekt- File öffne.

Gruß,
GNewmann


Geschrieben von Rainbird am 03.08.2006 um 16:33:
  Visual Studio
Welches Visual Studio verwendest Du?

Das projekt wurde mit Visual Studio 2005 Express erstellt.


Geschrieben von GNewmann am 03.08.2006 um 16:38:
 
Ich verwende das 2003er.. daran dürfte es scheitern.

Gruß,
GNewmann


Geschrieben von nic4x4 am 03.08.2006 um 16:53:
 
Hm ... ich wollt grad schon die Idee aufgeben ein Tut für standartmäßige Inputbox zu machen.
Glaubt ihr das lohnt sich? Das kann ja eigentlich fast jeder ...


Geschrieben von GNewmann am 03.08.2006 um 16:56:
 
Ich wäre vollkommen dafür.. smile

Es gibt zwar schon viele Tuts, doch so ein Fall wie ich es momentan habe, mit einem Dialog und der Übergabe von dem Wert, würde ich als sehr interessant einstufen.

Ich würde mich auf jedenfall freuen.

Kennt jemand eine Lösung wie ich das Programm von Rainbird zum laufen bringe?

Gruß,
GNewmann


Geschrieben von nic4x4 am 03.08.2006 um 17:12:
 
Gut. ok. Hier ist es:  Link

Ich hoffe du kannst damit was anfangen großes Grinsen


Geschrieben von GNewmann am 03.08.2006 um 17:16:
 
Dass ging ja schnell smile lese es gleich mal durch! Vielen Dank!

Gruß,
GNewmann


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 28.05.2020 10:05