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」),使用TopMost將不起作用,因爲'f2'應該能夠在'f1'前面獲得。 –