Winfrom窗体间传值
1.通过tag属性传输,tag属性是存储与空间密切相关的数据。比如登陆界面的数据传输给主界面。
子窗体 主窗体
定义一个类
namespace FrmLogin { public class User { public string UserName { set; get; } public string PassWorld { set; get; } } }
子窗体.cs
private void buttonLogin_Click(object sender, EventArgs e) { User user = new User(); user.UserName = this.textBoxName.Text.Trim(); user.PassWorld = this.textBoxPassWorld.Text; this.Tag = user; this.DialogResult = DialogResult.OK; }
父(主)窗体.cs
private void FormMain_Load(object sender, EventArgs e) { FormLogin frm = new FormLogin(); if (frm.ShowDialog() == DialogResult.OK) { User user = frm.Tag as User; this.Text += string.Format("--欢迎您:{0}", user.UserName); } else { frm.Close(); } }
2.创建一个类,相当于创建了全局共享的静态变量,然后大家都来访问这个静态变量。
全局类.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FrmLogin { public class ConText { public static User UserLogin = null; } }
子窗体.cs
private void buttonLogin_Click(object sender, EventArgs e) { User user = new User(); user.UserName = this.textBoxName.Text.Trim(); user.PassWorld = this.textBoxPassWorld.Text; //this.Tag = user; ConText.UserLogin = user; this.DialogResult = DialogResult.OK; }
主窗体.cs
private void FormMain_Load(object sender, EventArgs e) { FormLogin frm = new FormLogin(); if (frm.ShowDialog() == DialogResult.OK) { // User user = frm.Tag as User; User user = ConText.UserLogin; this.Text += string.Format("--欢迎您:{0}", user.UserName); } else { frm.Close(); } }
3.利用子窗体tag属性
子窗体.cs
private void buttonLogin_Click(object sender, EventArgs e) { User user = new User(); user.UserName = this.textBoxName.Text.Trim(); user.PassWorld = this.textBoxPassWorld.Text; FormLogin main = this.Owner as FormLogin; if (main == null) { MessageBox.Show("LOGIN窗体没有Owner,请检查代码!!"); } main.Tag = user; this.DialogResult = DialogResult.OK; }
父窗体.cs
private void FormMain_Load(object sender, EventArgs e) { FormLogin frm = new FormLogin(); if (frm.ShowDialog(this) == DialogResult.OK)//这儿一定要加this { User user = this.Tag as User; this.Text += string.Format("--欢迎您:{0}", user.UserName); } else { frm.Close(); } }
Winfrom窗体间传值的更多相关文章
- Pyqt 窗体间传值
窗体间传值网上有好多方法,比如新建文件,先将子类窗体的数据传到文件中,父窗体读取文件. Signal&Slot机制进行传值 等等 在这里,我们就举个采用apply方法:Signal& ...
- C# winform窗体间传值(使用委托或事件)
窗体间传值 今天得空,刚好看到网上好多人再找winform窗体间传值的问题,由于昨天项目的优化的感觉不错,就写了个C# winform窗体间传值的demo,希望能给需要的人的带来帮助: 工程的源代码地 ...
- 【转】WinForm窗体显示和窗体间传值
以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm项目,把用到的相关知识整理如下 A.WinForm中窗体显示 显示窗体可以有以下2种方法: Form.ShowDial ...
- C#利用事件与委托进行窗体间传值简单小例子
本篇博客是利用C#委托与事件进行窗体间传值的简单小例子 委托与事件的详细解释大家可以参照张子阳的博客: http://www.tracefact.net/CSharp-Programming/Dele ...
- QT窗体间传值总结之Signal&Slot
在写程序时,难免会碰到多窗体之间进行传值的问题.依照自己的理解,我把多窗体传值的可以使用的方法归纳如下: 1.使用QT中的Signal&Slot机制进行传值: 2.使用全局变量: 3.使用pu ...
- C#窗体间传值的简便方法/工具
一.问题:窗体间传值必须需要窗体之间有联系,具体有如下方式 窗体间传值涉及到窗体A必须拥有窗体B,这样才可以实现A-B之间传值 窗体A与窗体B在窗体/实例C中,A-B可互相通讯 其他方式,不细讨论,复 ...
- winform 窗体间传值
WinForm 两窗体之间传值实例 2010-12-27 22:10:11| 分类: 学业|举报|字号 订阅 下载LOFTER我的照片书 | 窗体Form1和Form2 Form2 ...
- ASP.NET 窗体间传值实现方法详解
假设ParentForm.aspx 页面上有TextBox1文本框和Open按钮点击Open按钮弹出SubForm.aspx,SubForm.aspx页面上有TextBox1文本框和Close按钮点击 ...
- (C#)WinForm窗体间传值
1.通过构造函数 特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中 int value1; string value2; public Form2 ( int v ...
随机推荐
- [CQOI2012]交换棋子 网络流
---题面--- 题解: 一开始很快想出了一个接近正解的建图方法,但其实是错误的,不过还是骗了70分_(:зゝ∠)_ 首先我们可以观察到棋子有限,但费用多种,其实也就相当于限制了流量,找最小费用 对于 ...
- BZOJ5333:[SDOI2018]荣誉称号——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5333 https://www.luogu.org/problemnew/show/P4620 题意 ...
- Mac安装mysqldb
一. 安装mysql (一)下载地址 https://pan.baidu.com/s/1slw50LZ 安装成功后,在系统偏好设置里有MySQL图标,可以启动或关闭MySQL 二. Mysql roo ...
- BZOJ3675 [Apio2014]序列分割 【斜率优化dp】
3675: [Apio2014]序列分割 Time Limit: 40 Sec Memory Limit: 128 MB Submit: 3366 Solved: 1355 [Submit][St ...
- codevs5037 线段树练习4加强版(暴力分块)
求大爷教线段树怎么写啊QAQ 只会写分块...一开始脑抽写成了O(NKlogN)还被CZL大爷嘲讽了一发T T f[i][j]表示在第i块中,模k为j的数有几个,然后每次修改的时候只需要打个标记,查询 ...
- JavaScript是如何实现继承的
JavaScript中的function是万能的,除了用于的函数定义,也可以用于类的定义.JavaScript的继承,说起来也是有点怪,没有public,private等访问控制修饰,也没有imple ...
- IDEA批量修改变量快捷键
Window: Ctrl+Shift+Alt+J Mac: Ctrl+Option+G
- sub-G 无线芯片基础知识
1.典型无线收发机编码 2.前导码的作用是使接收机的时钟和发射机同步(有待验证),如果接收机工作在WOR模式,前导码还有唤醒接收机的功能(接收一定数量的前导码),此时发射机必须发送较长的前导码才能把接 ...
- C# 生成订单号的几种方式
public class RandomNumber { public static object _lock = new object(); ; public string GetRandom1() ...
- Android UI开发第二十四篇——Action Bar
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为acti ...