首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#子窗体解决办法

2012-07-26 
C#子窗体public partial class mainForm1 : Form{public mainForm1(){InitializeComponent()}private voi

C#子窗体
public partial class mainForm1 : Form
  {
  public mainForm1()
  {
  InitializeComponent();
  }
  private void gy_Click(object sender, EventArgs e)
  {
  Help gy =new Help();//创建子窗体;
  gy.MdiParent = this;//指定当前窗体为MDI父窗体;
  gy.Show();//打开窗体
 
  }
  private void mainForm1_Load(object sender, EventArgs e)
  {

  }
  }
打开两次会出现两个同样的对话框,我想只出现一个对话框,请问如何实现?

[解决办法]
public partial class mainForm1 : Form
{
public mainForm1()
{
InitializeComponent();
}
 Help gy=null;
private void gy_Click(object sender, EventArgs e)
{
if(gy==null)
{
Help gy =new Help();//创建子窗体;
gy.MdiParent = this;//指定当前窗体为MDI父窗体;
gy.Show();//打开窗体
}
else
{
gy.Show();//打开窗体
}

  
}
private void mainForm1_Load(object sender, EventArgs e)
{

}
}

[解决办法]

C# code
Help gy ;private void gy_Click(object sender, EventArgs e){    if(gy == null || gy.IsDisposed)      {       gy =new Help();//创建子窗体;        gy.MdiParent = this;//指定当前窗体为MDI父窗体;        gy.Show();//打开窗体    }    else    {        gy.Active();    }}
[解决办法]
探讨

public partial class mainForm1 : Form
{
public mainForm1()
{
InitializeComponent();
}
Help gy=null;
private void gy_Click(object sender, EventArgs e)
{
if(gy==null)
{
……

[解决办法]
public partial class mainForm1 : Form
{

public static Help gy;
public mainForm1()
{
InitializeComponent();
}
private void gy_Click(object sender, EventArgs e)
{
if(gy==null)
{
gy =new Help();//创建子窗体;
gy.MdiParent = this;//指定当前窗体为MDI父窗体;
gy.Show();//打开窗体
}
}
[解决办法]
记个标志,每次打开时能知道上次有没有打开就行.
[解决办法]
C# code
public partial class mainForm1 : Form  {  public mainForm1()  {  InitializeComponent();  } Help gy=null;  private void gy_Click(object sender, EventArgs e)  {  if(gy==null)  {  gy =new Help();//创建子窗体;  gy.MdiParent = this;//指定当前窗体为MDI父窗体;  gy.Show();//打开窗体  }  else  {  gy.Show();//打开窗体  }     }  private void mainForm1_Load(object sender, EventArgs e)  {  }  }
[解决办法]
C# code
      //判断子窗体是否打开      foreach (Form frm in Application.OpenForms)            {                if (frm.Name == "gy")                {                    isOpened = true;                    frm.Activate();                    break;                }            }
[解决办法]
最简单做法
C# code
private void gy_Click(object sender, EventArgs e){    foreach (Form item in this.MdiChildren)    {        Help hf = item as Help;        if (hf != null)        {            hf.Activate();            return;        }    }    Help gy = new Help();//创建子窗体;    gy.MdiParent = this;//指定当前窗体为MDI父窗体;    gy.Show();//打开窗体}
------解决方案--------------------


探讨
引用:

C# code

Help gy ;
private void gy_Click(object sender, EventArgs e)
{
if(gy == null || gy.IsDisposed)
{
gy =new Help();//创建子窗体;
gy.MdiParent = this;//指定当前窗体为MDI父窗体;
……

用你这种……

热点排行