C#中避免相同MDI子窗口重复打开的方法计算机二级考试

文章作者 100test 发表时间 2009:07:25 10:38:27
来源 100Test.Com百考试题网


  方法一:
  直接检测是否已经打开此MDI窗体
  // 是否已经打开了?(用循环来判断)
  foreach (Form childrenForm in this.MdiChildren)
  {
  //检测是不是当前子窗体名称
  if (childrenForm.Name == "子窗体名称")
  {
  //是的话就是把他显示
  childrenForm.Visible = true.
  //并激活该窗体
  childrenForm.Activate().
  return.
  }
  }
  //下面是打开子窗体
  Form1 childrenForm = new Form1().
  childrenForm.MdiParent = this.
  childrenForm.Show().
  childrenForm.WindowState = FormWindowState.Maximized.
  方法二:
  将子窗体设成单件:
  namespace WindowsFile
  {
  public partial class Form3 : Form
  {
  public Form3()
  {
  InitializeComponent().
  }
  private void Form3_Load(object sender, EventArgs e)
  {
  richTextBox1.LoadFile(".\\test.txt", RichTextBoxStreamType.PlainText).
  }
  private static Form3 childform=null.
  public static Form3 Form3Signleton()
  {
  if (childform == null)
  {
  childform = new Form3().
  }
  return childform.
  }
  private void Form3_FormClosing(object sender, FormClosingEventArgs e)
  {
  try
  {
  this.Dispose(true).
  childform = null.
  }
  catch(Exception e)
  { MessageBox(e.ToString()). }
  }
  方法三:
  这个没用过,也是直接判断
  private static frm_rk frmchild.//定义子窗体
  private void 商品入库ToolStripMenuItem_Click(object sender, EventArgs e)//按钮事件
  {
  frm_rk frmchild = GetForm().
  frmchild.Show().
  }
  private frm_rk GetForm()//判断子窗体状态,防止重复显示
  {
  if (frmchild == null || frmchild.IsDisposed)
  {
  frmchild = new frm_rk().
  frmchild.MdiParent = this.
  }
  return frmchild.
  }

相关文章


C语言辅导:用vc设计系统援救程序计算机二级考试
应该怎样学习C语言?计算机二级考试
C语言辅导:C#实现虚拟桌面计算机二级考试
C语言辅导:C语言运算符表计算机二级考试
C#中避免相同MDI子窗口重复打开的方法计算机二级考试
NamedandOptionalParameters计算机二级考试
wince5.0下编译嵌入式操作系统sysgen阶段出错原因分析计算机二级考试
C语言学习应该注意的地方计算机二级考试
二级考试VF辅导:粘贴VFP顶层表单计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛