Form welches zuerst bearbeitet werden muss
-
Hallo Leute,
ich habe eine grafische C# Anwendung (mit Forms).
Wenn ich diese starte und ein User dabei mehrere eMail Adressen besitzt (diese werden ausgelesen), dann möchte ich ihm ein Fenster anzeigen, in welchem er seine gewünschte eMail Adresse auswählen kann.
Dieses Fenster soll aber zwingend zuerst bearbeitet werden und nicht in der Hintergrund rücken. Er soll also nichts anderes anklicken können.
Also das Verhalten wie unter Visual Studio -> Help -> About Microsoft Visual Studio.Da kann man erst wieder mit Visual Studio arbeiten, wenn man das "Infofenster" geschlossen hat.
Weiß jemand von euch welche Property das in einem Form ist?
Oder wie kann man das realisieren?wäre echt wichtig.
Danke und Gruß
-
Also du willst das Form öffnen und willst das während das Fenster geöffnet ist, keine weiteren Interaktionen mit anderen Forms stattfinden kann?
Hmm da fällt mir folgendes ein, rufe das Fenster nicht mit "Form.Show();" auf sondern benutze "Form.ShowDialog();".
Fals es das ist was du meinst.
-
mmh, ja das ist sehr gut!
Ich sehe der Rückgabewert von ShowDialog ist ein DialogResult.
Wie kann ich das im Form zurückgeben?
Danke und Gruß
-
In welchem Form?
Du kannst das DialogResult so abfangen.
DialogResult res = Form.ShowDialog(); if(res == DialogResult.OK) //oder so ähnlich //tu etwas
Meinste das so?
-
hallo..
nein, das meinte ich nicht
Also das abfangen kenne ich.. habe das mit den vorgefertigten Dialogen schon gemacht.Interessant wäre wie ich in meinem eigenen Form (selbst geschrieben) ein DialogResult zurückgeben kann.
Bisher ist mein DialogResult immer "cancel" obwohl ich gar nichts mache.
Danke und Gruß
-
private void ButtonOk_Click(...) { this.DialogResult = DialogResult.OK; this.Close(); }
-
okay, super.
Folgendes Problem habe ich..
Habe ein Hauptfenster.
Dieses öffnet ein weiteres "Auswahlfenster".
Und wenn die eMail Adresse fehlt, kommt eben das eMail Adress Fenster.Das eMail Adress Fenster öffne ich mit ShowDialog().
Wenn es sich schließt schreibt es die gewählt eMail Adresse in das "Auswahlfenster".Aber dabei kommt es hin und wieder vor das sich ein anderes Explorerfenster vor das Hauptfenster schiebt. Warum auch immer?!
Wenn ich nun das "Auswahlfenster" auch mit ShowDialog() öffne, dann verschwindet das Hauptfenster nicht mehr hinter einem Explorer-Fenster, aber es gibt so ein unschönes "zucken" als ob er kurz das Explorer Fenster dazwischen schieben möchte und es dann aber sofort wieder ausblendet.
Woher kommt dass, das da immer noch ein anderes Fenster angezeigt wird, wenn ich zwischendurch mal eines markiert habe?!
Hoffe man kann das in etwa nachvollziehen..
Danke nochmals für eure Hilfe
-
Übergib am besten immer das aufrufende Formular an die ShowDialog-Methode, also
DialogResult result = form.ShowDialog(this); // this is owner of the modal dialog
-
Hallo..
ja, genau das hab ich gemacht.
dennoch flackert es meist kurz.Ne Idee woran das liegen könnte?
Ansonsten werde ich heut abends/morgen früh mal ein Beispielprojekt hier reinstellen...
Gruß und Danke