zoukankan      html  css  js  c++  java
  • C# Winform多窗体&&构造函数传值

    一、多窗体:三种打开窗体的状态:

    最最基础的弹窗:

    //写在按钮的点击事件内:
    //实例需要弹出的窗口的类:
    Form2 f2  = new Form2();
    f2.Show();

    1、弹窗窗口:

    //实例化需要弹窗的类
    Form2 f2 = new Form2();
    f2.ShowDialog();
    //此弹窗打开子弹窗后父级弹窗不可选中

    2、子窗口:

    //实例化Form2
    Form2 f2 = new Form2();
    //this代表这个类
    //当前窗口的拥有f2
    f2.Owner = this;
    f3.Show();
    //子弹窗默认置顶父级弹窗,对其他弹窗无影响;
    //此弹窗子级弹窗和子级弹窗是平级的,可以互相覆盖;

    3、唯一窗口:

    //判断窗口有没有开启,没开启,开启一个新的,开启了,不做任何操作
    //关闭变为没开启状态
    //在Form1声明一个成员变量;
    public List<From> FromList = nwe List<Form>();
    //按钮的点击事件:
    //实例化Form2的时候要把form1传给Form2的构造函数;
    Form2 f2 = new Form2(this);
    bool a = false;
    //遍历FromList
    foreach(From x in FromList)
    {
    //判断,From2是否在FromList内,是返回true;
        if(x is From2)
            {
                a = true;
            }
    }
    //如果FromList内有From2...
    if(a)
    {
    }
    //如果没有....
    else
    {
    //把f2放到集合内,由于Form1,Form2等等,和Form都是继承关系,所以...
        FormList.Add(f2);
        f2.Show();
    }
    
    //这里是Form2的类的构造函数:
    //仅供提升作用域;
    Form F1 = null;
    //(From f1)的作用是传值;
    public From2(From f1)
    {
        F1 = f1;
    }
    //在Form2的FormClosing事件中双击:
    F1.FromList.Remove(this);
    
    //打开:简单的说,就是,先定义一个集合,把Form2放到一个集合内,遍历个集合,如果is到了返回true,不作任何操作,is不到返回false,可以打开From2,在把From2扔到集合内;
    //关闭了再打开就是把Form1自己,传给Form2的构造函数,当Form2关闭的时候执行关闭前的事件:把自己从集合内Remove掉;

    二、构造函数传值:

    简单地说就是通过一个按钮的点击事件,在Form2实例化的过程中把From1的控件的值传给From2的构造函数,再把值赋给相应的控件;

    简单的传值:

    //Form1的按钮点击事件内:
    Form2 f2  = new Form(TextBox.Text);
    From2.Show();
    //From2的构造函数:引入一个String类型的变量
    public Form2(string s)
            {
                InitializeComponent();
    //赋值给From2的Label1,显示出来的文字就是Form1的TextBox.Text;
                label1.Text = s;
            }
  • 相关阅读:
    idea spring boot 1.x junit单元测试
    linux oracle/jdk启用大页面
    jdk8之CompletableFuture与CompletionService
    gc日志深入解析-覆盖CMS、并行GC、G1、ZGC、openj9
    h2 web console使用
    LockSupport工具类详解
    反射、Unsafe、直接调用性能大比拼
    spring boot druid动态多数据源监控集成
    Linux网络
    org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection总结
  • 原文地址:https://www.cnblogs.com/xinchenhui/p/7875751.html
Copyright © 2011-2022 走看看