我想问一下哪位朋友,我点击菜单打开一个窗体,同时在树视图中显示这个窗体的名字,然后点击树视图的节点,希望将相应的窗体显示在最前端,我找来找去没找到这样的属性,用了一个TopMost,设置成True,但是这样做的问题是我再点击主窗体时,刚将TopMost属性设置成True的窗体还是显示在窗体的最前端,请问能用什么方法解决?
还有一个问题,我将打开的窗体关闭后,双击相应树视图的节点,希望再打开该窗体,请问怎么做?我将所有打开的窗体是放在一个ArrayList里的,关闭相应窗体,我是用Form.IsDisposed判断的,它为True,然后我用Form.show()显示该窗体,它报错说已释放的资源无法创建对象实例。

解决方案 »

  1.   

    我想问一下哪位朋友,我点击菜单打开一个窗体,同时在树视图中显示这个窗体的名字,然后点击树视图的节点,希望将相应的窗体显示在最前端,我找来找去没找到这样的属性,用了一个TopMost,设置成True,但是这样做的问题是我再点击主窗体时,刚将TopMost属性设置成True的窗体还是显示在窗体的最前端,请问能用什么方法解决?
    ------------------------
    再点击主窗体时,把那个窗体的TopMost设置成false不行么?
      

  2.   

    http://space.itpub.net/15783504/viewspace-557537
    或许有帮助 。。
    其实不懂说的什么 。做好说详细的
      

  3.   

    还有一个问题,我将打开的窗体关闭后,双击相应树视图的节点,希望再打开该窗体,请问怎么做?我将所有打开的窗体是放在一个ArrayList里的,关闭相应窗体,我是用Form.IsDisposed判断的,它为True,然后我用Form.show()显示该窗体,它报错说已释放的资源无法创建对象实例。
    -----------------------------
    已经Dispose了,自然不能再显示的,重新创建一个就是了。
      

  4.   

    要么开始的时候就使用Hide方法将它隐藏起来就行。
      

  5.   

    在该窗体的Deactivate事件中,执行Hide方法。
      

  6.   


    用窗体的关闭按钮将窗体关闭,它的IsDisposed属性就为True,但是这个对象还是存在的呀,new 一个新窗体就不是原来那个窗体了呀。
      

  7.   

    Form2 form2;private void button1_Click(object sender, EventArgs e)
    {
                if (form2 == null)
                {
                    form2 = new Form2();
                    form2.Show();
                }
                else
                {
                    form2.Activate();
                }
    }
      

  8.   


    你不要关闭窗口,在Form_Closing事件里面将窗口隐藏,然后
    e.Cancle = true;  这样窗口就不会被关闭,下次再调用的时候,只需要Show就可以了
      

  9.   

    用Show显示的窗体,关闭以后自动Dispose,对象还在只是因为你这里还保存着它的引用,阻止了它的彻底回收。
    用ShowDialog显示的窗体,关闭以后还可以重新显示出来。如果不想重新创建:
    1.使用ShowDialog显示窗体。
    2.或者处理Form的Closing事件,阻止关闭,自己执行Hide隐藏起来。
      

  10.   

    Form1:Form2 form2;
    private void button1_Click(object sender, EventArgs e)
    {
        if (form2 == null)
        {
            form2 = new Form2();
            form2.Show();
        }
        else
        {
            if (form2.Visible == false)
                form2.Show();
            else
                form2.Activate();
        }
    }
    Form2:
    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
        e.Cancel = true;
        this.Hide();
    }
      

  11.   


    再让窗体显示用show()方法?
      

  12.   


    我在Form2的Closing事件里设置了断点,关闭打开的窗口时,怎么没进去啊?郁闷
      

  13.   

    private void treeView_AfterSelect(object sender, TreeViewEventArgs e)
            {
                switch (treeView.SelectedNode.Text)
                {                 
                    case "数据查询":
                        数据查询FToolStripMenuItem_Click(null, null);                    
                        break;
                    case "数据采集":
                        数据采集ToolStripMenuItem_Click(null ,null );                   
                        break;
                    case "上传数据":
                        数据上传LToolStripMenuItem_Click(null, null);                   
                        break;
                    case "Barcode Upload":
                        barcodeToolStripMenuItem_Click(null, null);
                        break;
                    default:
                        break;
                }            
            }
    private void 数据查询FToolStripMenuItem_Click(object sender, EventArgs e)
            {
                bool exists = false;
                Form[] childForms = this.MdiChildren;
                if (childForms.Length > 0)
                {
                    foreach (Form form in childForms)
                    {
                        if (form.GetType() == typeof(frmQuery))
                        {
                            frmQuery flqy = (frmQuery)form;
                            flqy.Activate();
                            exists = true;
                            break;
                        }
                    }
                }
                if (!exists)
                {
                    frmQuery flqy = new frmQuery();
                    flqy.MdiParent = this;
                    toolvisual();
                    flqy.Show();
                }
            }
    可以参考一下