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

最最基础的弹窗:

//写在按钮的点击事件内:
//实例需要弹出的窗口的类:
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;
}

C# Winform多窗体&&构造函数传值的更多相关文章

  1. C#-WinForm-跨窗体 构造函数传值 及应用—登录式窗口传值、如何关闭主页面时关闭应用程序、如何打开唯一窗口—★★★★★五星重量级

    构造函数可以传任意类型的值,并可以同时传多个值 结构函数传值的初步应用--简单的登陆式界面 现在我有两个窗体Form3和Form4,如下,如何点击Form3中的按钮后,打开Form4并将Form3中的 ...

  2. C#-WinForm-★★★★★跨窗体 构造函数传值 及应用—登录式窗口传值、如何关闭主页面时关闭应用程序、如何打开唯一窗口★★★★★

    构造函数可以传任意类型的值,并可以同时传多个值 结构函数传值的初步应用——简单的登陆式界面 现在我有两个窗体Form3和Form4,如下,如何点击Form3中的按钮后,打开Form4并将Form3中的 ...

  3. 20150214—winform中使用构造函数传值

    构造函数,在函数初始化时就会执行的函数方法,在创建一个类之后,系统会自动在此类中生成一个与类名相同的函数,其中只包含一句代码: InitializeComponent(); 新建一个名字相同的函数,然 ...

  4. 第一次知道Winform的窗体之间传值怎么写,分享给小白~

    之前为了这事,百度了一天也没找到,最终使用了静态变量了. 窗体Form1: private void button1_Click(object sender, EventArgs e) { var f ...

  5. Winform不用窗体之间传值

    1 先构建一个类,内容如下: namespace TravelForm { public sealed class Setting { private static volatile Setting ...

  6. winform 窗体间传值

    WinForm 两窗体之间传值实例 2010-12-27 22:10:11|  分类: 学业|举报|字号 订阅     下载LOFTER我的照片书  |     窗体Form1和Form2 Form2 ...

  7. winform修改、打开窗体、构造函数传值

    制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...

  8. Winform 主窗体更换 构造函数传值

    制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...

  9. winform打开唯一窗体、构造函数传值

    制作登入窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...

随机推荐

  1. 名称空间2.0path

    Django 1点几跟2点几的区别 2.0path 是什么路径就是什么路径.第一个参数不再是正则表达式. 转换器 path的分组 <int:year> 匹配正整数 <str:year ...

  2. 进程有一个全局变量i,还有有两个线程。i++在两个线程里边分别执行100次,能得到的最大值和最小值分别是多少?

    转自https://blog.csdn.net/biubiu741/article/details/77990592 i++不是原子操作,也就是说,它不是单独一条指令,而是3条指令: 1.从内存中把i ...

  3. GlusterFS卷的种类

    1.分布卷 在分布式卷中,文件随机扩展到卷中的砖块中. 使用分布式卷,需要扩展存储和冗余不是很重要,或由其他硬件/软件层提供. 创建语法:gluster volume create [transpor ...

  4. python 网络编程 IO多路复用之epoll

    python网络编程——IO多路复用之epoll 1.内核EPOLL模型讲解     此部分参考http://blog.csdn.net/mango_song/article/details/4264 ...

  5. QTP 自动化测试桌面程序--笔记(下拉选择、右键菜单、在控件仓库中查找对应的控件)

    0 在收集窗口控件信息时-最好将可输入的文字去掉,不然控件的名称按输入的文字标记 1 编辑时录制脚本-默认按当前显示的填入的数据标记控件 可以使用 tool-spy-查看控件的x,y 坐标,按坐标在学 ...

  6. 关于事务回滚,rollback tran到底要不要写?

    关于事务回滚,有些不明白,不知道rollback tran在什么时候用. begin tran update 表1 update 表2 commit tran 这种写法,在更新表1或表2时出错,事务会 ...

  7. ECS配置lamp环境

    1.安装apache 1.1 安装apache [root@nmserver-7 ~]# yum install httpd httpd-devel 1.2 启动apache服务 [root@nmse ...

  8. ES 6 系列 - 对于常用对象的拓展 api

    本篇中学习并记录可能会比较常用的 api ,详细请自行查找相关资料. 一.字符串的拓展 es 6 加强了对于 Unicode 的支持.javascript 允许采用 \uxxxxx 的方式表示一个字符 ...

  9. Spring validator常用注解

    规则: 原版在这里 https://www.cnblogs.com/wjh123/p/8745473.html @AssertFalse Boolean,boolean 验证注解的元素值是false ...

  10. Windows Server2008、IIS7启用CA认证及证书制作完整过程

    1         添加活动目录证书服务 1.1          打开服务器管理器,右键点击角色,选择“添加角色”,在“添加角色向导”窗口左侧面板选择“服务器角色”,然后勾选“Active Dire ...