1

我有一个使用两种形式的应用程序:Form1(主要)和 Form2(次要)。我使用以下代码显示 Form2:

Form2 frm = new Form2();
frm.TopMost = true;
frm.Show();

当 Form2 可见时,它没有焦点。如何在 Form2 上进行焦点并保持在 Form1 上的焦点?对不起,我的英语不好!

4

1 回答 1

0

在 MDI 父表单(主表单)中尝试以下代码

private Form2 _form2;

#region UtilOpenForm
    /// <summary>
    /// UtilOpenForm
    /// </summary>
    /// <param name="appContainer"></param>
    /// <param name="childForm"></param>
    private void UtilOpenForm(Form appContainer, Form childForm)
    {
        this.Cursor = Cursors.WaitCursor;
        if (childForm == null)
        {
            throw new ArgumentNullException("childForm");
        }
        childForm.MdiParent = appContainer;
        childForm.StartPosition = FormStartPosition.CenterScreen;
        childForm.MaximizeBox = false;
        childForm.MinimizeBox = false;
        childForm.Closed += new EventHandler(childForm_Closed);
        childForm.Show();
        this.Cursor = Cursors.Default;
    }

现在从 MDI 父级中的按钮/菜单单击

    if (_form2 == null)
        {
            UtilOpenForm(this, _form2 = new Form2());
        }

现在 MDI Parent 中的子窗体关闭函数

   #region childForm_Closed
    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void childForm_Closed(object sender, EventArgs e)
    {
        if (sender.GetType() == typeof(Form2))
        {
            _form2.Dispose();

            if (_form2 != null)
            {
                _form2 = null;
            }
        }
于 2013-02-12T11:56:59.413 回答