8

これに関するいくつかのトピックを見つけましたが、これらのどれも私の問題を解決するのに役立ちませんでした。開始後に新しく作成された winform ウィンドウにフォーカスを設定したいと思います。

私は独自の新しいスレッドでフォームを開始しています:

application.Run(new InvisibleForm());

フォームが表示されますが、ウィンドウから最後に選択されたウィンドウにフォーカスが設定されたままです。このフォームにはタイトルバーがなく、表示するタスクパネルにもありません。TransparencyKey も設定されています。

this.AutoScaleDimensions = new SizeF(6F, 13F);
this.AutoScaleMode = AutoScaleMode.Font;
this.BackColor = SystemColors.AppWorkspace;
this.ClientSize = new Size(992, 992);
this.ControlBox = false;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "InvisibleForm";
this.Opacity = 0.5;
this.ShowInTaskbar = false;
this.TransparencyKey = SystemColors.AppWorkspace;
this.Load += new EventHandler(this.InvisibleForm_Load);

今、私はいくつかの方法を試しましたが、これらのいずれもフォームに焦点を当てたり、他のすべてのウィンドウの前景/上にフォームを設定したりできませんでした:

this.TopMost = true;
this.Focus();
this.BringToFront();
this.Activate();

プログラムでクリック/フォーカスイベントをフォームに発生させて、このイベントをフォーカスに設定する方法はありますか?

4

2 に答える 2

8

Activate()フォームの「表示」状態でメソッドを使用することが重要であるため、表示されたイベントのリスナーを作成し、そこでフォーカス/フロントメソッドを使用します

于 2012-04-22T18:00:21.477 に答える