子窗口总是转到后面

本文关键字:窗口 | 更新日期: 2023-09-27 18:33:55

我有一个MDI表单,当我启动程序时,打开的子窗口总是转到后面,我已经尝试了MDI表单上的sendtoback(),在子表单上尝试了bringtofront(),没有运气。任何人?

private void MDI_Form_Load(object sender, EventArgs e)
{
   SendToBack();
   Form1 loginscrn = new Form1();
   loginscrn.Show();
}
private void Form1_Load(object sender, EventArgs e)
{
   BringToFront();
   SqlConnection connection = new SqlConnection(@"server=.'SQLEXPRESS; database=loginsTest;Trusted_Connection=yes");
   connection.Open();
   string selection = "select * from Logins where Name = '"+userNameBox.Text+"'";
   SqlCommand command = new SqlCommand(selection, connection);
   SqlDataAdapter da = new SqlDataAdapter(command);
   DataSet ds = new DataSet();
   da.Fill(ds);
   DataTable dt = ds.Tables[0];
}

子窗口总是转到后面

要么是:

loginscrn.ShowDialog(this);

以使其成为对话框,或:

loginscrn.MdiParent = this;
loginscrn.Show();

如果该形式被认为是MDI儿童。

尝试设置 Owner 属性。"所有者窗口永远无法覆盖拥有的窗口。"有关详细信息,请阅读此 msdn 文章

编辑:在form_load中调用BringToFront()对您没有任何好处,因为此时表单不可见。您可以尝试将其移动到OnShowed。

    protected override void OnShown(EventArgs e)
    {
        this.BringToFront();
        base.OnShown(e);
    }