this.TopMost = true funktioniert nicht?

8

Ich bin sehr neu in C # und versuche immer noch, ihn (mit Hilfe einiger sehr geduldiger Freunde) in den Kopf zu bekommen.

Ich habe ein Problem damit, die Eigenschaft TopMost eines neuen Windows Formulars auf true zu setzen. Ich habe zwei (fast) identische Formen; 1 was gut funktioniert und eins was nicht.

In beiden Formularen ist die TopMost -Eigenschaft auf true festgelegt.

  • Form1 zeigt das Fenster und wenn ich versuche dahinter zu klicken, blinkt das Formular einige Male und gibt einen Windows-Piep aus.
  • Form2 zeigt auch das Formular, aber wenn ich dahinter klicke, wird das Formular grau (oder verliert den Fokus) und ich kann auf das Hauptformular klicken.

Ich habe nach einer Antwort auf dieses Problem gesucht und eine Antwort gefunden, die darauf hinweist, dass this.TopMost = true; in das Ladeereignis des Formulars eingefügt wurde, aber das hat nicht funktioniert.

Die einzige Sache, die ich geändert habe, die Wirkung hatte oder nicht, ist, dass Form1 mit .NET 4.5 in den Eigenschaften und vor dem Erstellen von Form2 erstellt wurde, änderte ich dies in .NET 3.5 (Client-Profil). Ich habe versucht, es zurück zu ändern, aber es hat nicht geholfen. Bevor ich Form2 erneut lösche und erstelle, hat jemand irgendwelche Ideen?

Vielen Dank im Voraus. (Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen)

    
Kungfauxn00b 31.05.2013, 16:41
quelle

6 Antworten

12

TopMost ist eine Eigenschaft, die verwendet wird sicher, dass ein Fenster immer über allen anderen innerhalb einer Anwendung angezeigt wird. Microsofts Beispiel war ein Tool zum Suchen und Ersetzen.

Der Unterschied, den Sie finden, ist, dass Form1 als modaler Dialog durch die Verwendung von ShowDialog . Show dialog stellt sicher, dass Ihr Formular geschlossen werden muss, bevor alle anderen Fenster in der Anwendung erneut verwendet werden können. Beispielsweise; Verwenden eines Formulars, um Benutzerdaten zu erhalten, um in eine übergeordnete Formulardatenbank zu gelangen.

Show wird verwendet, wenn es Ihnen nichts ausmacht wenn Ihr Benutzer mit seinem Dialog fertig ist oder nicht, so dass er Ihrem Benutzer die Möglichkeit gibt, ein Dienstprogramm (zB Timer, Stoppuhr) zu benutzen, das die Hauptfunktion eines Programms unterstützt.

Der einzige visuelle Unterschied, den ich mir bei der Verwendung verschiedener .Net-Frameworks vorstellen kann, sind verschiedene Windows-Dialoge wie der OpenFileDialog, die im gesamten Framework aktualisiert wurden

    
Sayse 31.05.2013, 17:36
quelle
5

Es kann Ihnen helfen;

%Vor%     
Furkan Ekinci 31.05.2013 16:43
quelle
3

Dieser Link von Microsoft bestätigt, dass es sich um einen Fehler in Windows 7 und Windows Server 2008 R2 handeln könnte. Ich habe ihn in einem Windows 7 Embedded-System gefunden und der bereitgestellte Patch behebt das Problem. p>

Ссылка

Hoffen Sie, dass es hilft!

    
Guillermo Gutiérrez 02.10.2014 13:54
quelle
0

Der harte Weg, es zu tun! Funktioniert 100%!

%Vor%     
Martin.Martinsson 04.07.2016 21:05
quelle
0

Ich hatte ein ähnliches Problem in meiner Lösung. Nach der Verwendung der überladenen Show-Funktion funktionierte es:

%Vor%     
termigrator 02.01.2017 06:31
quelle
-1

Fügen Sie im Gezeigten -Ereignis den folgenden Code hinzu:

%Vor%     
Melody 16.12.2017 23:27
quelle

Tags und Links