メソッドを使用するFocus()
と、対象のフォームがフォーカスを取得しますが、他のフォームの前にも表示されます。
この z オーダーの変更を回避する方法はありますか?
以下に短い例を示します。
class MyForm : Form
{
static void Main(string[] args)
{
MyForm f1 = new MyForm()
{
Text = "f1"
};
f1.Show();
MyForm f2 = new MyForm()
{
Text = "f2"
};
f2.Show();
Button b1 = new Button();
b1.Click += (sender, e) => f2.Focus();
f1.Controls.Add(b1);
Button b2 = new Button();
b2.Click += (sender, e) => f1.Focus();
f2.Controls.Add(b2);
Application.Run(f1);
}
}
のボタンをクリックすると、f1
フォーカスf2
が得られますが、前にも表示されますf1
(これは避けたいことです)。