我有一个使用两种形式的应用程序:Form1(主要)和 Form2(次要)。我使用以下代码显示 Form2:
Form2 frm = new Form2();
frm.TopMost = true;
frm.Show();
当 Form2 可见时,它没有焦点。如何在 Form2 上进行焦点并保持在 Form1 上的焦点?对不起,我的英语不好!
在 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;
}
}