Entwickler-Ecke
WinForms - Fremden Fenster den Fokus geben ?
Delete - Mi 02.01.08 21:06
Titel: Fremden Fenster den Fokus geben ?
Hi,
Mal ne kurze frage: Wie kann ich einem anderen fenster, das sich nicht in meiner anwendung befindet, den focus geben und wie kann ich die fenster ermitteln die offen sind ???
Ich will so ne liste haben wo alle offenen fenster drin stehen und bei klick wird dann das jeweilige fenster in den vordergrund gehohlt bzw. aktiviert. Wie mach ich das ?
mfg
Delete - Do 03.01.08 03:35
Ok das dachte ich mir schon irgendwie. Aber ich verstehe den artikel auf CodeProject beim besten willen nicht...
Es werden funktionen aus der winapi dll geladen, aber wo genau frägt er die fenster ab ??? Blick das nicht... hab mir den code auch runtergeladen, aber verstehes nicht.
Soweit hab ich herausgefunden das hier alles passiert:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| private void Chooser_Load(object sender, System.EventArgs e) { VisListBox.Items.Clear();
VisListBox.BeginUpdate();
Windows wndList = new Windows(InvisibleBox.Checked,NoTitleBox.Checked); foreach (Window wnd in wndList) {VisListBox.Items.Add(wnd);}
VisListBox.EndUpdate(); } |
Vllt kannste ja mal nur das zeigen, was nur für die fensterermittlung rlevant ist...
danke schonmal
mfg
Christian S. - Do 03.01.08 23:52
Hallo!
Was Du gepostet hast, ist nur der Teil für die Darstellung dessen, was die Window(s) Klassen es Projektes leisten. Entscheidend für Dich ist der Quellcode, der auch direkt auf der verlinkten Seite zu sehen ist, denn da passiert das eigentlich Interessante.
Du siehst dort zwei Klassen: eine Window-Klasse und eine Windows-Klasse, was eine Aufzählung von Instanzen der Window-Klasse darstellt.
Im Konstruktor der Windows-Klasse werden alle verfügbaren Fenster gesucht (mittels Callback-Methode EvalWindow) und der internen ArrayList hinzugefügt.
In der Window-Klasse wiederum findest Du die Funktionalität, um Fenster sichtbar zu machen bzw. um ihnen den Fokus zu geben. Für Dich dürfte dabei die Activate-Methode interessant sein, weil diese für den Fokus zuständig ist. Eventuell auch noch die Visible-Eigenschaft, welche für die Sichtbarkeit des entsprechenden Fensters zuständig ist.
Grüße
Christian
Delete - Fr 04.01.08 21:49
Christian S. hat folgendes geschrieben: |
Hallo!
Was Du gepostet hast, ist nur der Teil für die Darstellung dessen, was die Window(s) Klassen es Projektes leisten. Entscheidend für Dich ist der Quellcode, der auch direkt auf der verlinkten Seite zu sehen ist, denn da passiert das eigentlich Interessante.
Du siehst dort zwei Klassen: eine Window-Klasse und eine Windows-Klasse, was eine Aufzählung von Instanzen der Window-Klasse darstellt.
Im Konstruktor der Windows-Klasse werden alle verfügbaren Fenster gesucht (mittels Callback-Methode EvalWindow) und der internen ArrayList hinzugefügt.
In der Window-Klasse wiederum findest Du die Funktionalität, um Fenster sichtbar zu machen bzw. um ihnen den Fokus zu geben. Für Dich dürfte dabei die Activate-Methode interessant sein, weil diese für den Fokus zuständig ist. Eventuell auch noch die Visible-Eigenschaft, welche für die Sichtbarkeit des entsprechenden Fensters zuständig ist.
Grüße
Christian |
Hi Christian,
Danke für die Hilfe... jetzt hab ichs endlich geschaft nur das was ich wollte aus dem code zu extrahieren.
Hab sonst keine probleme codes zu analysieren und so, aber diesmal hab ich mir echt schwer getan... naja arbeite ja erst ne woche mit C# :)
Danke und mfg
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!