zoukankan      html  css  js  c++  java
  • WinForm 多窗体、菜单和工具栏控件

    多窗体:

    1、一个窗体隐藏,另一个窗体打开。且后一个窗体关闭,两个窗体都结束,也就是整个程序都结束

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

    2、窗体只能打开一个  

      --  创建一个全局的泛型集合,为了放置全部打开的窗体

        窗体关闭后,可以再次打开; 

      --  当窗体关闭时,清除Form1中集合中的此窗体对象记录

        当窗体已经打开,再次点击打开按钮,已打开的窗体重新显示并焦点进入  

      --  找到已打开对象,将设置WindowState属性,使用Fouces方法

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

      传值:构造函数传值

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

      --  private改成public

    4、提示框类型的窗体:当前窗体不关闭,无法对其他窗体进行任何操作

      --  使用 ShowDialog();

    Form1代码:

    List<Form> Flist = new List<Form>();
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    bool has = false;

    Form2 f2 = new Form2(this);
    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();
    }

    }

    private void button2_Click(object sender, EventArgs e)
    {
    bool has = false;

    Form3 f3 = new Form3();
    foreach (Form F in Flist)
    {
    if (F.Name == f3.Name)
    {
    has = true;
    }

    }


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


    public void DeleteForm(Form F)
    {
    Flist.Remove(F);
    }

    Form2代码:

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

    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
    if (F1 != null)
    {
    F1.DeleteForm(this);
    }
    }

     菜单和工具栏控件:

    1、ContextMenuStrip  右键菜单栏

    2、MenuStrip 顶部菜单栏

      分割线 :- 或 右键,插入Separator

      插入标准项:右键,插入标准项;

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

    3、 StatusStrip 底部菜单栏

    4、 TooplStrip 工具条

    5、 TooplStripContainer 工具条容器 

      可将工具条放入其中

  • 相关阅读:
    Windows Svr 2008 Ent R2 性能计数器显示不全
    SQL Server的keepalive
    C语言字符串常见操作-strcpy、strlen、strcat和strcmp实现
    计算机中数据的编码方式
    OC中的排序方法
    关于C语言内存对齐
    C语言内存管理总结-野指针
    Objective-C基础学习笔记(九)-Foundation
    Objective-C基础学习笔记(八)-内存管理-autorelease使用-property创建对象的内存管理-循环引用的内管管理
    Objective-C基础学习笔记(七)-分类-Category-类的本质-load和+initialize方法-SEL数据
  • 原文地址:https://www.cnblogs.com/hcx999/p/5897859.html
Copyright © 2011-2022 走看看