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;
}
C# Winform多窗体&&构造函数传值的更多相关文章
- C#-WinForm-跨窗体 构造函数传值 及应用—登录式窗口传值、如何关闭主页面时关闭应用程序、如何打开唯一窗口—★★★★★五星重量级
构造函数可以传任意类型的值,并可以同时传多个值 结构函数传值的初步应用--简单的登陆式界面 现在我有两个窗体Form3和Form4,如下,如何点击Form3中的按钮后,打开Form4并将Form3中的 ...
- C#-WinForm-★★★★★跨窗体 构造函数传值 及应用—登录式窗口传值、如何关闭主页面时关闭应用程序、如何打开唯一窗口★★★★★
构造函数可以传任意类型的值,并可以同时传多个值 结构函数传值的初步应用——简单的登陆式界面 现在我有两个窗体Form3和Form4,如下,如何点击Form3中的按钮后,打开Form4并将Form3中的 ...
- 20150214—winform中使用构造函数传值
构造函数,在函数初始化时就会执行的函数方法,在创建一个类之后,系统会自动在此类中生成一个与类名相同的函数,其中只包含一句代码: InitializeComponent(); 新建一个名字相同的函数,然 ...
- 第一次知道Winform的窗体之间传值怎么写,分享给小白~
之前为了这事,百度了一天也没找到,最终使用了静态变量了. 窗体Form1: private void button1_Click(object sender, EventArgs e) { var f ...
- Winform不用窗体之间传值
1 先构建一个类,内容如下: namespace TravelForm { public sealed class Setting { private static volatile Setting ...
- winform 窗体间传值
WinForm 两窗体之间传值实例 2010-12-27 22:10:11| 分类: 学业|举报|字号 订阅 下载LOFTER我的照片书 | 窗体Form1和Form2 Form2 ...
- winform修改、打开窗体、构造函数传值
制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...
- Winform 主窗体更换 构造函数传值
制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...
- winform打开唯一窗体、构造函数传值
制作登入窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...
随机推荐
- 取消 Vue 中格式编译警告
使用VS Code在学习 Vue 的过程中,博主是在2.0之后开始学习的,在写项目的时候发现控制台经常会报一大堆的警告,都是关于格式的,有时候少空格,有时候多空格,不胜其烦,出现这个问题是因为在初始化 ...
- 解决方法:CentOS7用yum安装软件显示错误:cannot find a valid baseurl for repo: base/7/x86_64
在Linux学习中,发现使用yum安装软件出现以下的错误: 百度了各种方法,很多人也发现光是修改REBOOT=yes也没用,多次进行挂载.修改网卡配置文件.重置IP地址.重启网络.创建又删除配置文件的 ...
- web项目中的监听器,过滤器以及自定义servlet的执行顺序
可以看到web容器一启动就会实例化监听器的contextInitialized(ServletContextEvent event)方法,然后是过滤器的init()方法,最后在用户访问web应用的 时 ...
- Laravel 出现 No application encryption key has been specified.
若文件根目录下没有 .env 1..env.example 改名使用命令 copy 修改为 .env 2.使用命令 php artisan key:generate 获取密码,自动保存到 .env3 ...
- Spring框架IOC和AOP的实现原理
IoC(Inversion of Control) (1). IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控.控制权由应用代码中 ...
- python之路--类的约束, 异常处理, MD5, 日志处理
一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代 ...
- python 列表、元组、字典
一.列表 [ ] 如下的列子都可以成为列表,c=[1,2,3,4,5,6],d=["abc", "张三",“李四”],e=[1,2,3,"abc&qu ...
- 莫烦scikit-learn学习自修第二天【算法地图】
1. 算法地图
- 莫烦keras学习自修第四天【分类问题】
1.代码实战 #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ # 导入numpy import numpy as np np.random.seed(133 ...
- php重定向http请求
302 临时重定向 301 永久重定向 ( 302 和 301 的区别主要在于搜索引擎,搜索引擎一般不会抓取临时重定向的页面 ) 301 和302 适用于 普通的GET 请求: 如果 ...