首页 > 代码库 > 0922 多窗体,菜单和工具栏

0922 多窗体,菜单和工具栏

多窗体

这里所谓的多窗体就是我们所说的打开一个窗体后,从这个窗体打开另一个窗体,打开的窗体只能打开一个,当再次点击时会把焦点移入打开的新窗体

1.   首先我们先定义一个泛型集合来存放打开的窗体,来判断是否打开过这个窗体

List<Form> Flist = new List<Form>();

2.在主窗体的按钮上写方法

            bool has = false;//用来判断是否打开过第二个窗体

            Form2 f2 = new Form2(this);//将这个窗体传入第二个窗体实现第二窗体关闭时清楚集合,代码在第3步骤
            foreach (Form F in Flist)
            {
                if (F.Name == f2.Name)//遍历查看集合是否有第二个窗体
                {
                    has = true;
                    F.WindowState = FormWindowState.Normal;//最小化放到正常大小
                    F.Focus();
                }
            }


            if (has)
            {
                f2.Close();
            }
            else
            {
                Flist.Add(f2);
                f2.Show();
            }

        }

 

 

//第三步需要调用的函数

 Flist.Remove(F);

3. 第二窗体关闭时清楚集合

         Form1 F1 = null;//传值进来
        public Form2(Form1 f1)
        {
            InitializeComponent();
            F1 = f1;
        }

 

 

 

   //关闭调用清除方法

   if (F1 != null)

public Form2(Form1 f1)
        {
            InitializeComponent();
            F1 = f1;
        }

 

 

 

菜单和工具栏

1.ContextMenuStrip-右击菜单

用于放置右击时出现的菜单

2.MenuStrip-菜单

不管什么窗体在上部一般都会有菜单栏,创建时右击会出现"插入标准项"快速建菜单

菜单属性ShortcutKeys-快捷键

3.StatusStrip-工具栏

4.ToolStrip-工具栏

我感觉3和4没什么区别

5.ToolStripContainer-放置工具栏的容器

 

0922 多窗体,菜单和工具栏