我通过listbox打开了两个窗口a,和b,我要实现的是选择菜单项时,将选择的窗口切换为当前窗口,怎么做?比如我菜单项里面有2个选项,“A”和“B”,点A的时候让a窗口作为当前窗口,点B时b窗口作为当前窗口。
求高手解答。

解决方案 »

  1.   

    Type ft = null;
    if (listBox选择A)
    {
        ft = typeof(A窗体的类型);
    }
    else if (listBox选择B)
    {
        ft = typeof(B窗体的类型);
    }foreach (Form item in Application.OpenForms)
    {
        if (item.GetType() == ft)
        {
            item.Activate();
            break;
        }
    }
      

  2.   

    不要关闭,我点A的时候让a在b前面,点B的时候让b在a前面。
      

  3.   

    // 比如 listBox1 的选择事件,其他的事件也一样
    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (listBox1选择了A)
        {
            this.Activate<A窗体的类型>();
        }
        else if (listBox选择了B)
        {
            this.Activate<B窗体的类型>();
        }
    }// 加上一个方法
    private void Activate<T>() where T : Form
    {
        foreach (Form item in Application.OpenForms)
        {
            if (item is T)
            {
                item.Activate();
                break;
            }
        }
    }