mehrere Formen (gleich aufgebaut) öffnen wenn noch nicht vorhanden

Fridulin

Erfahrenes Mitglied
Hallo Leute,

ich weiß Titel vom Beitrag ist ein wenig unschön, aber mir viel nichts besseres ein wie ich das kurz Beschreiben sollte.
Also meine Problem ist, ich habe einen Chatserver mir gebastelt wobei sich die Clienten einzeln unterhalten können sollten. So sobald ein Client jetzt ein anderen Client anspricht soll sich eine neue Form öffnen (die user_form), wenn sie noch nicht offen. Andernfalls direkt in der Form schreiben. So sollen die beiden direkt miteinander sich unterhalten können.
Nun ist mein Problem, wie ich das Bewerkstellige. Wenn ich, sobald eine Nachricht eingeganngen ist, eine Form deklariere und diese öffne, öffnet sich immer wieder eine neue Form auch wenn von den gleichen Clienten eine Nachricht eingeht. Sobald ich eine Form am Anfang deklariere schreibt er es zwar immer in einer Form rein, allerdings wenn man vom einem anderen Client angesprochen wird öffnet sich natürlich keine neue Form.
Es soll ja auch Möglich sein sich mit mehren Clienten gleichzeitig zu unterhalten, also mehrere user_form(en) geöffnet werden können.


Über jede Hilfe wäre ich sehr dankbar.

Viele Grüße
Fridulin


Edit:
Code:
	                  user_form user_formchat = new user_form(this);
			user_formchat.Wem = nick_sender;
			user_formchat.Text = "Chat mit " + nick_sender;
			user_formchat.Nachricht = zwischen;
			user_formchat.aktualisieren();
			user_formchat.Show(this);
 
Zuletzt bearbeitet:
Hallo Leute,

leider habe ich immer noch keine Lösung gefunden, wie ich jetzt überprüffen kann ob die Form schon geöffnet ist. Es muß ja auch genau stimmen ob die Form für den bestimmten Clienten (Nicknamen) schon geöffnet ist, da sich die Chat Formen ja nicht unterscheiden und immer auf einer beruht. Das ist genau das Problem, ich muß eine Lösung finden, wie die Formen Seperaieren kann bzw. festellen kann ob der Chat mit der gewissen Person schon besteht und ich in der Form es reinschreiben kann, oder eben der Chat noch nicht besteht und sich eine neue Form öffnen soll.

Für jegliche Tipps wäre ich sehr dankbar.

Vielen Dank im vorraus und viele Grüße
Fridulin


Edit:
Ich habe es geschafft. Ich habe einfach vorher den Forms den Namen von den Chattern gegeben und dann frage ich es jedesmal mit einer If Frage ab.

Code:
	if (user_formchat.Text == "Chat mit " + wem)
			{
				user_formchat.Text = "Chat mit " + wem;
				meldung  = meldung.Substring(10);
				user_formchat.Nachricht = meldung;
				
			}
			else{
			
					user_formchat = new user_form(this);
					user_formchat.Text = "Chat mit " + wem;
					meldung  = meldung.Substring(10);
					user_formchat.Show(this);
				}
					
					user_formchat.Nachricht = meldung;
					user_formchat.Wem = wem;
 					user_formchat.aktualisieren();

Ich wünsche noch nen schönen Abend

Fridulin
 
Zuletzt bearbeitet:
Hi

Nutz doch ein Dictionary ;)
Key ist der Name (ID, was auch immer) vom Gegenüber (muss etwas sein, was eindeutig ist)
Als Value nutzt du einfach die Form.
Mit der Funktion ContainsKey überprüfst du, ob es schon eine Form gibt und lässt sie dir anschließend zurück gegen, ansonsten instanziierst du eine Neue
 
Zurück