C#, C/S, winfrom //点击菜单打开from窗口后,再次点击该菜单,又会打开该from,这样就会打开很多相同的from,
//怎么才可以避免一个from 被多次重复打开??
//当再次点击菜单时,如果该窗口已经打开,怎样将窗口置为最前端显示 ?? private void ToolStripMenuItem01_Click(object sender, EventArgs e)
{
frmbclass from = new frmbclass();
from.Show();
}
初学C#,
请各位高手详细说明,谢谢
//怎么才可以避免一个from 被多次重复打开??
//当再次点击菜单时,如果该窗口已经打开,怎样将窗口置为最前端显示 ?? private void ToolStripMenuItem01_Click(object sender, EventArgs e)
{
frmbclass from = new frmbclass();
from.Show();
}
初学C#,
请各位高手详细说明,谢谢
在窗体中加入如下代码
private static 窗体 instance = null;
//添加一个属性
public static 窗体 Instance
{
set{
}
get{
if(instance == null){
new 窗体();
}
return instance;
}
}
在窗体的构造函数中加入如下代码
instance = this;
创建窗体Closed事件
private void 窗体_FormClosed(object sender, FormClosedEventArgs e)
{
instance = null;
}使用方法:
在要调用该窗体的地方加入如下代码
窗体 myfrm = 窗体.Instance;
myfrm.Show();
myfrm.Activate();
{
if( childForm == null || childForm.IsDisposed )
{ //第一次实例化或实例化窗体被关了,都要重新实例化
childForm = new ChildForm();
childForm.MdiParent = this; childForm.Show(); //显示 }
}
private void ToolStripMenuItem01_Click(object sender, EventArgs e)
{
foreach(Form frm in Application.OpenForms)
{
if(frm is frmbclass)
{
frm.Activate();
frm..WindowState = FormWindowState.Normal;
return;
}
}
frmbclass from = new frmbclass();
from.Show();
}
{
shipCompu = new ShipCompu();
shipCompu.Show();
}
else
{
shipCompu.Activate();
IntPtr i = WinHs.GetForegroundWindow();
if (WinHs.IsIconic(i))
{
WinHs.ShowWindowAsync(i, SW_RESTORE);
}
else
{
WinHs.ShowWindowAsync(i, SW_SHOWNORMAL);
}
}
http://www.hhxue.com/ncre/two/c/fudao/200811/65236.html
Form frm = Application.OpenForms["Form1"];
if (frm != null)
{
frm .Show();
}
else
{
Form1 F1 = new Form1();
F1.Show();
}