Windows-Form-Fenster Immer Fokussiert?

Ich weiß, es gibt ein paar threads über dieses bereits. Was ich brauche ist, eine windows-form-Fenster immer darauf konzentriert, das heißt, wenn ich auf den Editor oder was auch immer-Programm wird es nicht geben, alle Daten und geben Sie nur Daten in meiner windows-form-Textfeld.

Fand ich diesen code, der funktioniert etwas erklären, mehr

    //Delegates for safe multi-threading.
    delegate void DelegateGetFocus();
    private DelegateGetFocus m_getFocus;
    Thread newThread;

    public MemberLogin()
    {

        m_getFocus = new DelegateGetFocus(this.getFocus);  
        InitializeComponent();
        spawnThread(keepFocus);
        toggleFocusButton.Text = "OFF";
        timer1.Interval = 2000;
        textBox1.Select();
    }

    //test focus stuff
    //Spawns a new Thread.
    private void spawnThread(ThreadStart ts)
    {
        try
        {
            newThread = new Thread(ts);
            newThread.Start();
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message, "Exception!", MessageBoxButtons.OK,
                MessageBoxIcon.Error);
        }
    }

    //Continuously call getFocus.
    private void keepFocus()
    {
        while (true)
        {
            getFocus();
        }
    }

    //Keeps Form on top and gives focus.
    private void getFocus()
    {
        //If we need to invoke this call from another thread.
        if (this.InvokeRequired)
        {
            this.Invoke(m_getFocus, new object[] { });
        }
        //Otherwise, we're safe.
        else
        {
            //having this seemed to have kept my windows onTop at all times even when off 
           //this.TopMost = true;
            this.TopMost = true;
            this.Activate();
            this.textBox1.Select();
            this.textBox1.Focus();

        }
    }

dieser code scheint zu funktionieren nur gut, wenn mein Projekt geöffnet wird, sprich bei meinem Visual Studio Projekt wird geschlossen, das Fenster ist oben die meisten, aber nicht den Fokus haben, was bedeutet, dass ich eingeben kann, die in anderen Programmen. Seltsame Sache, die ich fand, ist, dass beide notepad und meine textbox hatte blinkende Linie, was erzählt wo Sie den text zu schreiben. Wenn ich meine app aus dem Visual Studio-Projekt funktioniert alles wie es soll und wenn ich versuche, klicken Sie auf anderen windows-es lässt mich nicht zugreifen, das ist, was ich will.

So, ich bin ein bisschen verwirrt darüber, warum funktioniert es nur richtig mit dem Projekt geöffnet

Beachten Sie auch, solange das Projekt geöffnet ist, dann auch .exe und anderen Exemplaren, die ich gemacht richtig funktionieren, schließe ich die Projekt-Lösung-und das Programm macht das, was ich oben erklärt.

Habe gerade etwas mehr testen und es scheint zu funktionieren nur korrekt, wenn dieser Prozess ausgeführt wird vhost.exe die Visual Studio-Hostprozess. Ich es deaktiviert in den Einstellungen, und wenn ich starten von VS funktioniert es einwandfrei aber wenn ich nur die exe im Ordner bin ich immer noch die seltsame Ergebnisse

BEARBEITEN

Hier ist ein kurzes video, das ich mit meinem Ergebnis http://www.youtube.com/watch?v=1ozpHSRGnMo

Neu Bearbeiten

Was ich getan habe, dies zu beheben, wurde meine app im fullscreen-Modus ein bisschen von tun dies, damit der Benutzer gehen kann, klicken Sie auf andere Fenster schließen, ohne diese zunächst

this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
  • Windows verfügt über eine explizite Gegenmaßnahmen in Ort, um Sie daran zu hindern, dies zu tun. Programmierer nie in Betracht, das offensichtliche Versagen-Modus: was passiert, wenn zwei Programme, die dies tun?
  • mögliche Duplikate von Halten Sie eine Anwendung, die auf und in den Fokus - immer
  • Schauen Sie sich dieses video, das ich gerade gemacht und zeigt die Ergebnisse youtube.com/watch?v=1ozpHSRGnMo und Nein, es ist nicht ein Duplikat als ich sagte, der code funktioniert und ich habe es aus einem anderen Beitrag auf dieser website. Aber der code funktioniert nur bei der Ausführung von VS2012 Bedeutung, wenn ich drücken Sie die F5-Taste zum ausführen meiner app. Wie kann ich auch nicht klicken Sie auf andere Fenster, das ist, was ich will!!! Aber dann habe ich die exe starte und ich schreiben kann, in anderen windwows wie notepad. Also, was ich mir denke ist VS2012 ist, meine app mehr Priorität über andere irgendwie.
InformationsquelleAutor Steven | 2013-03-19
Schreibe einen Kommentar