主窗体为MDI窗体,新加载的窗体不会出现在窗体最前方。而是被原来的窗体遮盖住了。现在如果我先打开 “销售”窗体,再打开“管理”窗体,"销售"窗体就遮盖住了"管理"窗体。我想要让新窗体出现最前方或者是加载前关闭上一个旧窗体。下面是我加载窗体的代码,应该如何写? private void 销售ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form froms in this.MdiChildren)
{
if (froms is m_sale)
{
froms.Focus();
return;
}
}
m_sale sale = new m_sale();
sale.MdiParent = this;
sale.Show();
} private void 管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form froms in this.MdiChildren)
{
if (froms is m_sale)
{
froms.Focus();
return;
}
}
m_usermange usermanage = new m_usermange();
usermanage.MdiParent = this;
usermanage.Show();
}
{
foreach (Form froms in this.MdiChildren)
{
if (froms is m_sale)
{
froms.Focus();
return;
}
}
m_sale sale = new m_sale();
sale.MdiParent = this;
sale.Show();
} private void 管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form froms in this.MdiChildren)
{
if (froms is m_sale)
{
froms.Focus();
return;
}
}
m_usermange usermanage = new m_usermange();
usermanage.MdiParent = this;
usermanage.Show();
}
解决方案 »
- 如何获取OleDbDataReader dr 中某一列的数据内容
- 用NPOI导出数据库内容到Excel中,遇到问题CellType类型选择的问题
- 用webbrowser访问一个网页,获取返回值
- C# 导出Excel时如何设置隐藏行或者列
- SqlDataReader的奇怪问题
- 求线性搜索最优算法
- 为啥这个串口通讯Class无法进行串口通讯,需要用其它软件打开一次之后就能正常?有没有好点的串口通讯Class?
- 请问怎么打印dataGrid中内容,
- 急求:Repeater 如何显示数据库中图片
- 请教一个网络转发的问题
- 关于sqldatareader的问题
- 短信猫的SMS.DLL添加引用不了 是为什么
非顶级窗体不能显示为模式对话框。在调用 showDialog 之前应从所有父窗体中移除该窗体。
private void 刷卡售票ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form froms in this.MdiChildren)
{
if (froms is m_sale)
{
froms.Focus();
return;
}
}
m_sale A = new m_sale();
A.MdiParent = this;
A.BringToFront();
A.Show();
} private void 用户管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form froms in this.MdiChildren)
{
if (froms is m_sale)
{
froms.Focus();
return;
}
}
m_usermange B = new m_usermange();
B.MdiParent = this;
B.BringToFront();
B.Show();
}
{
return _forms.ContainsKey(formName);
} private void ShowForm(Form form, bool Maximized = true)
{
string formName = form.Name;
if (!Contains(formName))
{
_forms.Add(formName, form);
form.Disposed += (x, y) =>
{
_forms.Remove(formName);
};
form.MdiParent = this;
if (Maximized)
form.WindowState = FormWindowState.Maximized;
form.Show();
}
else
{
_forms[formName].BringToFront();
}
}
private void 刷卡售票ToolStripMenuItem_Click(object sender, EventArgs e)
{
ShowForm(new m_sale());
} private void 用户管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
ShowForm(new m_usermange());
}
myform.Show();
myform.BringToFront();
myform.MdiParent= this;
myform.Show();
myform.BringToFront();
你这个单个窗体是没问题的,但是2个以上窗体就会。先打开A再打开B,B在A前面,但是如果我加载A,那么A不会再被加载了。而且如果先加载B再要加载A,A也不能被加载。
private void 刷卡售票ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form froms in this.MdiChildren)
{
if (froms is m_sale)
{
froms.Focus();
return;
}
}
m_sale A = new m_sale();
A.MdiParent = this;
A.Show();
A.BringToFront();
} private void 用户管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form froms in this.MdiChildren)
{
if (froms is m_sale)
{
froms.Focus();
return;
}
}
m_usermange B = new m_usermange();
B.MdiParent = this;
B.Show();
B.BringToFront();
}
前面加上froms.MdiParent = this;
{
Form myform = null;
if (Myformtype== null)
{
return myform;
}
if (myform == null)
{
myform = (Form)System.Activator.CreateInstance(Myformtype);
}
if (CheckFormIsOpen(myform.Name) == true)
{
return null;
}
myform.Show();
myform.BringToFront();
return myform;
}
家在myform.show();前面