Autor Beitrag
dr.luemmel
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 17.04.10 22:52 
Hallo Community,

nun teste ich mal dieses Forum, freundlich klingt gut ;)

Zu meinem Problem:
Ich habe eine Anwendung, die aus mehreren Fenstern besteht. Wenn ich nun zum Beispiel den Browser öffne und danach wieder meine Anwendung verwenden will, klicke ich dazu eines dieser Fenster an, das dann in den Vordergrund geholt wird. Die anderen Fenster sollen jedoch ebenfalls in den Vordergrund.

Ich habe es nun bei Form1.Activated mit:

ausblenden C#-Quelltext
1:
2:
3:
Form2.BringToFront();
Form3.BringToFront();
ActiveControl=this;


probiert. Es sind zwar alle Fenster im Vordergrund, dummerweise lässt sich aber Form1 nun gar nicht mehr aktivieren.
Der Fehler liegt wohl daran, dass immer wenn Form1 aktiviert wird, das Ereignis erneut ausgeführt wird, praktisch eine Schleife.

Auf Form1.Click passiert leider nichts.

Wie kann ich das am einfachsten lösen?

Grüße
dr.luemmel

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 18.04.10 10:54 
Hallo und :welcome: im Forum ;-)

Im Grunde reicht es einfach noch Focus() aufzurufen, damit dein Formular wieder den Fokus hast.

Wenn du das Flackern unterbinden willst, reicht eine private Variable, die du beim Eintreten in das Ereignis umschaltest. Wenn die gesetzt ist, brichst du einfach ab. Auf diese Weise wird das Ereignis auch nur einmal parallel ausgeführt.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
        private Boolean Activating = false;

        private void TestForm_Activated(object sender, EventArgs e)
        {
            if (Activating)
                return;
            Activating = true;
            test.BringToFront();
            this.BringToFront();
            this.Focus();
            Activating = false;
        }
dr.luemmel Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: So 18.04.10 12:09 
perfekt! super, danke dir.