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

多窗体,菜单工具栏

多窗体

主窗体不关程序无法退出。

主要有4点

1、哪个是主窗体

Form2 f2 = new Form2();f2.Show();this.Hide();

打开form2窗口,隐藏form1窗口

问题:主窗体隐藏了,关闭其它窗体后,没有将主窗体显示/关闭,那么程序就关不上了

构造函数传值,将窗体传到另一个窗体中去

2、

2、窗体只能打开一个

创建一个全局的泛型集合,为了放置全部打开的窗体
1、在窗体打开之前,判断集合中是否有name一致的窗体,如果有就说明已经打开了,就不要再打开了

bool has = false;            Form2 f2 = new Form2();            foreach (Form F in Flist)            {                if (F.Name == f2.Name)                {                    has = true;                }            }            if (has)            {            }            else            {                Flist.Add(f2);                f2.Show();            }

问题:当窗体打开了,关闭后,就无法再次打开了
办法:当窗体关闭时,清除Form1中集合中的此窗体对象记录

form1:    public void DelectForm(Form F)        {            Flist.Remove(F);//移除        }form2: public partial class Form2 : Form    {        Form1 F1 = null;        public Form2( Form1 f1)        {                       InitializeComponent();            F1 = f1;        }     private void Form2_FormClosing(object sender, FormClosingEventArgs e)        {            if (F1 != null)            {                F1.DelectForm(this);            }        }


问题:当窗体已经打开,再次点击打开按钮,不会将已打开的窗体重新显示并焦点进入
办法:
找到已打开对象,将WindowState属性设置为:
找到已打开窗体的对象,使用Focus方法;

F.Focus
最小化,也弹出, 焦点进入

 F.WindowState = FormWindowState.Normal;

3、窗体之间的传值和控制

传值:构造函数传值

控制:第一步,找到窗体对象,第二步,将窗体对象的控件值更改
注意:要将窗体中的对象访问权限修改public

form1: private void button1_Click(object sender, EventArgs e)        {            if (textBox1.Text == "liuxin" && textBox2.Text == "1234")            {                Form2 f2 = new Form2(this,textBox1.Text );                f2.Show();                this.Hide();form2:public partial class Form2 : Form    {        Form1 F1 = null;        public Form2(Form1 f1,string Uname)        {            InitializeComponent();            F1 = f1;            label1.Text = "欢迎回来"+Uname;        }    }


4、提示框类型的窗体

ShowDialog();

 Form2 f2 = new Form2(this,textBox1.Text);            f2.ShowDialog();

菜单和工具栏:

1、MenuStrip:
顶部菜单
分割线:1、- 2、右键插入 split。。。

快捷键:每一个项右键属性的最下面可以设置快捷键
不管选项隐藏还是菜单隐藏,快捷键都管用

2、ContextMenuStrip:
右键菜单

3、StatusStript:
底部菜单

4、ToolStrip
工具条

5、ToolStripContainer
工具条容器

作用:将窗体显示为模式对话框。 在调用Form.ShowDialog方法后,直到关闭对话框后,才执行此方法后面的代码

 

 
 

多窗体,菜单工具栏