这关treeview 什么事哟!
问题一,解决方案1:ShowDialog() 就不用判断了 :)
        解决方案2:把新窗体声明成全局的,在需要Show的时候判断一下是否已经打开
        解决方案3:利用“单例模式”,这样得到的窗口总是相同的,在Show之前判断一下。
问题二,把查询到的数据保存到DataTable或DataSet里面,并在构造新窗体的时候把数据传进去,或者利用其他方式得到,然后再在新窗体绑定。

解决方案 »

  1.   

    1。判断窗体是否打开:
    private bool FormIsOpen(string sFormName)
    {
    bool bFormIsOpen=false;
    for(int k=0;k<this.MdiChildren.Length ;k++ )
    {
    if (this.MdiChildren[k].Name.ToString()==sFormName)
    {
    this.MdiChildren[k].Activate();
    bFormIsOpen=true;
    break;
    }
    }
    if(bFormIsOpen)
    {
    this.ActiveMdiChild.WindowState =System.Windows.Forms.FormWindowState.Normal ;  
    this.ActiveMdiChild.Activate();
    return  bFormIsOpen;
    }
    else return false;}
    2。传一条sql语句给新窗体,或者直接得到Dataset传给新窗体即可。