0

私は 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];
}
4

2 に答える 2

2

次のいずれかです。

loginscrn.ShowDialog(this);

ダイアログにするか、または:

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

そのフォームが mdi 子であると想定されている場合。

于 2013-10-04T20:50:52.267 に答える
0

Ownerプロパティを設定してみてください。「所有者ウィンドウは、所有されているウィンドウを覆うことはできません。」詳細については、このmsdn 記事をお読みください

編集: form_load で BringToFront() を呼び出しても、現時点ではフォームが表示されないため、何の役にも立ちません。OnShown に移動してみてください。

    protected override void OnShown(EventArgs e)
    {
        this.BringToFront();
        base.OnShown(e);
    }
于 2013-10-04T23:51:09.940 に答える