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 ...
随机推荐
- spring AOP源码分析(一)
对于springAOP的源码分析,我打算分三部分来讲解:1.配置文件的解析,解析为BeanDefination和其他信息然后注册到BeanFactory中:2.为目标对象配置增强行为以及代理对象的生成 ...
- 连接mysql 出现 1005 error(150) , error(121)的错误
1.显示不能创建表 出现150错误 将检查是因为 我的user 表示拷贝过来的所以它设置的编码格式是utf-8 而我又新创建的表没有添加编码格式,所以它认为这两个关联的表之间的编码格式不匹配. 2.出 ...
- 修改tomcat控制台title的方法
修改tomcat控制台title的方法,参考:http://www.jspkongjian.net/news.jsp?id=1125,具体如图:
- linux重装系统,如何保存硬盘中的内容
以前没有太关注重装系统如何保留下硬盘中的内容.但是最近有一些文件在重装系统后确实需要继续保留下来,于是花了点时间了解下磁盘分区相关的东东. 参考 http://blog.csdn.net/openn/ ...
- how to build an app with github
how to build an app with github Building apps https://developer.github.com/apps/ demos https://githu ...
- linux服务器运维
1. grep正则匹配 grep -E "([0-9]{1,3}\.){4}" filepath egrep "([0-9]{1,3}\.){4}" fil ...
- 老男孩python学习自修第十六天【常用模块之sys和os】
例子: sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys. ...
- eclipse 启动问题Eclipse启动时报错:A Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No java virtual machine was found after searching the following locat
从其他人直接复制的环境导致的问题. 正常双击出现当前异常,以管理员权限启动可以正常启动. ---------------------------Eclipse--------------------- ...
- 十、docker扩展
一.memcached docker pull memcached docker run --name my-memcache -d -p 11211:11211 memcached telnet 1 ...
- XCTF 4th-WHCTF-2017 creakme
exe文件 运行一下 随便输一下 ps.这个曹操身边的故事挺有意思的 但是没啥卵用....... 查一下壳无壳 ida载入 发现找不到main函数 直接看start感觉逻辑乱乱的(萌新求不喷..... ...