2013-04-19 1 views
5

Ich habe an einer Windows Form-Anwendung in C# gearbeitet und brauche Hilfe. Ich versuche, das Fensterflimmern neu zu erstellen, das die meisten Windows-Anwendungen haben, wenn ein Formular den Fokus auf ein übergeordnetes Formular verliert. Der beste Weg, um dies zu erklären, ist, den Taschenrechner zu öffnen, das Hilfefenster zu öffnen und zu versuchen, auf den Taschenrechner zu klicken, das Hilfefenster, dann ohne hinter den Taschenrechner zu fallen, flackert, verliert und gewinnt die Beschattung um die Ränder.Fensterflimmern bei Fokusverlust?

Ich habe es geschafft, den Fokus auf das untergeordnete Fenster wiederherzustellen, wenn der Eltern geklickt wird, aber das erzeugt einen seltsamen flackernden Effekt, da das Elternfenster momentan vor das Kindfenster gebracht wird. Ich rate nur, aber dieser Effekt, nach dem ich suche, scheint zu sein, dass der Taschenrechner nie vor das Hilfefenster gebracht wird und dann das Hilfefenster einfach ein paar Mal aktiviert und deaktiviert wird.

Ich habe versucht, einige Suchen und ich habe ein paar Themen in Bezug auf diese gesehen, aber keine der Lösungen übereinstimmen. Ich bin ziemlich neu in der Herstellung von Windows-Anwendungen, so dass es immer noch Dinge gibt, die ich nicht verstehe, also sei geduldig mit mir, wenn ich etwas nicht verstehe.

Vielen Dank im Voraus

Eine Ausarbeitung auf dem Rechner Beispiel:

1) öffnet Rechner aus Fenstern Zubehör 2) in der Symbolleiste auf die Registerkarte Hilfe gehen und öffnet die über Rechner Option 3 Klick) auf dem Rechner Fenster 4) die über Rechner-Fenster wird dann flackern, während nie hinter dem Rechner fallen

der einzige Fortschritt, den ich in diese Richtung gemacht haben, ist

Die offene Variable ist etwas, das ich zu verfolgen, wenn offene Formulare und wird wahr, wenn ich ein anderes Formular zeigen.

+0

Welche Lösungen haben Sie gefunden? Bitte poste etwas von deinem Code. –

+1

+1, interessante Frage tatsächlich. Jesse, ich brauchte ein paar Lektüre, um zu verstehen, was du beschreibst ... du könntest erwägen, klarere Reproduktionsschritte zu schreiben, damit die Leute wissen, wovon du sprichst. – tnw

+0

Schöne, gute Repro-Schritte. Sie sollten auch den Code für das, was Sie versucht haben, einfügen. Sieht so aus, als wärst du zu 90% da. – tnw

Antwort

7

In Ihrem Beispiel wird das About-Fenster als modales Fenster bezeichnet. Ein modales Fenster verhindert, dass der Benutzer mit dem übergeordneten Fenster interagiert, bis es geschlossen wird. Verwenden Sie Form.ShowDialog anstelle von Form.Show, um dem Benutzer ein Formular als modales Fenster zu präsentieren.

+0

Vielen Dank soooooo viel Ich kann nicht glauben, dass die Lösung so einfach war !!! Sir ich kann dir nicht genug danken !!! – Jesse

0

Machen Sie das Kind aus modal. Dies bedeutet, dass das Kind ordnungsgemäß geschlossen werden muss, bevor der Fokus wieder auf den Elternteil übertragen werden kann.

Verwandte Themen