Announcement

Collapse
No announcement yet.

BringToFront bringt es nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • BringToFront bringt es nicht

    Hallo Zusammen,

    meine C#, bestehend aus einer Form prüft mit einem Timer ein Verzeichns auf eine Datei. Wenn diese vorhanden ist soll die Anwendung in den Vordergrund von Windows kommen.

    Kompletter Ablauf sie so aus
    C++ Anwendung schriebt die Datei in das entsprechende Verzeichnis und startet die C# Anwendung
    C# Anwendung findet die Datei und bearbeitet diese anschließend werden diese Zeilen ausgeführt

    this.BringToFront();
    this.Activate();

    Unten in der Taskleiste blinkt die Anwendung, aber im Vordergrund ist die C++ Anwendung.

    Besten Dank für Infos
    Thomas

  • #2
    Stell dir vor jemand arbeitet gerade in irgendeinem Fenster und du nimmst im einfach den Focus weg weil dein Fenster unbedingt in den Vordergrund will. Da wäre ein dicker Hals vorprogrammiert.

    Darum hat Microsoft BringToFront so intelligent implementieren das das Fenster nur in den Vordergrund kommt wenn es schon den Focus hatte. Wenn nicht meldet es sich nur in Taskbar mit einem freundlichen 'hey ich will dir was zeigen'-blinken und drängt sich nicht einfach nach vorne und unterbricht den User.

    Comment


    • #3
      Ok, das mag sein, dass MS das so beabsichtigt hat, aber dennoch muss es doch eine Möglichkeit geben. Denn ich möchte genau das.

      Comment


      • #4
        Warum überhaupt die 2 Programme. Klingt doch so, als ob das C++Programm das alles erledigen könnte. Dann ist es schon vorne
        Christian

        Comment


        • #5
          Das C++ Programm erledigt jetzt schon die Aufgaben, aber eine 3D Darstellung ist nicht trivial und die Komponenten von C++ werden nicht mehr unterstützt und fressen den Speicher auf. Jetzt habe ich die 3D Darstellung ausgelagert und das habe ich in C# gemacht.

          Dennoch hier die Antwort auf meine Frage
          this.TopMost = true;
          this.Activate();
          this.BringToFront();
          this.TopMost = false;

          Comment

          Working...
          X