0
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
の前に来る:
は、ここで簡単な例です。
設定はf1.TopMost = trueになります。あなたのために働く? –
あなたは 'BringToFront'タグをつけました。この/または 'SendToBack'は必要に応じてフォームを注文する可能性がありますが、初期の変更は避けられません。 – TaW
@ TroyMac1ure: 'f2'がクリックされた場合など、' f2'が 'f1'の前に入ることができるはずなので、TopMostを使うと動作しません。 –