关于2个窗体间的传值问题

C#两窗体(或类)之间传值 转载:https://blog.youkuaiyun.com/zt15732625878/article/details/79685336 窗体之间大致包含三种方法: 1、通过全局变量 2、通过构造函数传递参数 3、通过委托实现 一、通过全局变量 在不同窗体间传值,最专业的做法是新建一个类B.cs,在类B中定义Public static 全局静态变量,使用类A赋给B值,类C再去访问B,实现... 阅读详情
这个操作比vb,delphi等环境都要复杂那么一点点.主要是涉及一些托管的概念问题.

关于2个窗体间的传值问题,3个类,一个中间类,用来存放传的值,2个窗体,主窗体一个textbox,一个button,副窗体就一个textbox,当副窗体textbox值变时,主窗体textbox也变!




代码如下:
C#.net:
中间类:
using System;
namespace WindowsApplication1
{

//定义一个委托

public delegate void SendMessage(string s);
public class cResult
{
//声明一个类事件,类型是上面的委托

public event SendMessage txtChange;
   
//存放结果的中间变量
public string r1 = string.Empty ;

    //定义一函数,目的是在form2中调用次函数,然后引发txtChange事件
//而txtChange事件具体实现在form1中,正好可以改变文本框text值

public void ChangeText(string s ){
 
//判断是否为空
  if (txtChange!=null){
 
//触发事件
  txtChange(s);
  }
}
}
}


主窗体:
private void button1_Click(object sender, System.EventArgs e)
{
 
//实例化一个中间类

    cResult r = new cResult();

//订阅此类的txtChange事件为SendMessage,具体实现内容在方法:Message中
        r.txtChange +=new SendMessage(Message);
     
//实例化form2

  Form2 fr2 = new Form2(r);

//显示form2窗体.fr2.Show()两个窗体都可以看,但是ShowDialog方法,最小化其中一个,另外一个也最小化
  fr2.ShowDialog();
}
private void Message(string s)
{
  //form2的文本框值给form1的文本框
  this.textBox1.Text=s;
}

副窗体:
//定义一个中间类
private cResult r;
//构造函数
public Form2(cResult r):this()
{

//接收从form1传过来的中间类cResult
this.r=r;
}
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
  //当文本框改变时,调用中间类的ChangeText函数,从而引发txtChange事件
  r.ChangeText(this.textBox1.Text );
}
子窗体和父窗体双向传值——C#窗体传值方法总结 简介  在很多场景下,我们的程序需要完成窗体间的传值功能,有时候是父窗体→子窗体单向传值、子窗体→父窗体传值甚至是,也有时候我们需要父窗体⇆子窗体双向传值。   在本文中主要介绍一些能够实现双向传值的方法,能够双向传值的方法也能够实现单向传值。   本文的所有源码都可以在GitHub上下载。      本文介绍的方法仅限于我自己知道并且实现过的,我相信还有很多我并不知道的方法,因此也许在很多 阅读详情

相关推荐

两个窗口之间传值,传多值,单值

WINFORM两个窗口之间传值,传多值,单值,测试可用,父传子,子传父,不想干的两个互传值

delphi窗体之间的相互传值

效果图如下所示 Form1代码 //定义一个用户信息类 type   TUsersInfo=class     //声明三个全局变量     public        UserName: string;        UserPwd:string;        UserAge:Integer;   end; //引用form2 uses Unit2;

wang463584281的专栏 6908

窗体间传值的两个方法.txt

VB6.0体间传值的两个方法,基础的,供不知道的新手参考用,老手高手就不用看了

关于两个窗口间传值

<br />环境Vs2005,<br />经常会遇到两个窗口之间传值的情况,比如说A窗口里面要修改一个TextBox(txtB)必须要在B窗口上修改,然后在返回A窗口。<br />这就需要用到中间类和传递的方法。<br /> <br />在中间类中编写要传递的数据为公共类型的。<br />在A窗口上的跳转事件中写名B b=new B (A) ;<br />B窗口中写A aa=new A(); pubic B(A a){aa=a;}

0x12的专栏 1004

在两个不同的窗体之间传值

该实例采用C#可以实现在不同的窗体之间传值,将一个窗口中TextBox的内容传到另一个窗体

C#两种方法实现在两个窗体之间传递参数

两种不同的方法实现在两个窗体之间传递参数,适用于C#普通窗体之间传递参数,

c#中两个窗体相互传值

在做两个窗体相互传值的过程中,学习了好多类似的方法,最后找到了一篇很详细的博客,今天就结合这位大神的博客,http://blog.youkuaiyun.com/zlbcdn/article/details/70888603,加点自己的总结,保存备看。 1、功能展示 有时需要将子界面的内容传递到父界面,方法有好几种。经常用的是通过委托实现。具体的效果如下: 【说明】点击父界面上“...

HANHUABAO1122的博客 3885

osgEarth添加线特征

部分关键代码: osgEarth::Annotation::FeatureNode* pathNode = 0; osgEarth::Symbology::Geometry* path = new osgEarth::Symbology::LineString(); Track*track = dynamic_cast<Track*>(entity->getProperty(PS_TRACK)); if (track == nullptr) { return; } st.

wb175208的专栏 2968

【窗体】Winform两个窗体之间通过委托事件进行值传递,基础篇

在实际项目中,我们可能会用到一些窗体做一些小工具或者小功能。比如:运行程序,在主窗体A基础上,点击某个按钮希望能够弹出B窗体, 在B窗体完成操作后,希望能够把值传递回到A窗体,然后进行其他业务操作。

小5聊的博客 3956

(project generation have a problem)STM32CubeMX生成工程一直报错项目生成有问题[玄学三步解]

解决办法 第一步,检查自己是不是真的配置的不对,JAVA安装没,pack路径设置的对不对,这里有一位前辈的博文写的非常好,附加链接https://blog.youkuaiyun.com/ybhuangfugui/article/details/52225736#commentBox 第二步,如果按照前辈的博文设置的都一模一样,还是不对,想我下图这样。 那你来对地方了 方法很简单,你把你生成工程文件的路径彻底的...

展桑博客-BenjieBlog 2923

【晶振专题】晶振学习笔记——ST AN2867应用手册 2

通过学习AN2867设计指南,我们知道皮尔斯晶振的基本知识。也了解了晶振的负载电容计算方法、安全因子测试方法和反馈电阻的作用。

一点硬件 1364

QT窗体间传值总结之Signal&Slot

在写程序时,难免会碰到多窗体之间进行传值的问题。依照自己的理解,我把多窗体传值的可以使用的方法归纳如下:       1.使用QT中的Signal&Slot机制进行传值;       2.使用全局变量;       3.使用public形式的函数接口;       4.使用QT中的Event机制(这种没有把握,但是感觉应该是可以的),但是实现起来应该比前几种复杂,这里不做讨论。

hanxing0的专栏 3万+

【推荐100个unity插件之8】实现多人在线联机游戏——Mirror插件的使用介绍(附项目源码)

基于Mirror的Unity多人游戏开发指南 本文介绍了使用Mirror插件开发Unity多人游戏的基本流程。Mirror是Unity的高级网络API,替代了已废弃的UNet系统。文章详细讲解了如何导入Mirror插件,创建NetworkManager网络管理器,处理常见错误,以及创建玩家角色和出生点。 主要内容包括: 创建场景NetworkManager并配置必要组件 为玩家添加NetworkIdentity和NetworkTransform组件 设置玩家初始生成位置和生成方式 常见错误及解决方法 通过M

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

C#窗体间传值的方式

1、通过通过Tag属性传值;2、构造函数传值3、通过事件参数传值。

chentiebo的博客 1769

从数据库到数据仓库:数据仓库导论

本文为数据仓库导论,旨在介绍数据仓库的基本理念和应用场景,帮助读者理解数据仓库的重要性及其在企业中的实际应用。

探索大数据世界 - 深入解析数据存储、分布式计算与人工智能 2784

5、流体-结构相互作用耦合技术详解

本文详细解析了流体-结构相互作用(FSI)的两种核心耦合技术:松散耦合和紧密耦合。通过原理阐述、优缺点分析及实际应用案例,对比了两种方法的适用场景与性能差异,并进一步探讨了高级耦合技术的发展趋势和工程实践方向,为相关领域的研究人员和工程师提供了全面的技术参考。

fanta的博客 205

WinForm中父窗体与子窗体之间的相互传值

在WinForm开发中,窗体之间的相互传值是一项基本操作,本文就来介绍一下实现方法。

HerryDong的博客 7861

使用MATLAB和Simulink来创建一个智能家居照明控制系统的仿真模型

智能家居中的智能照明控制系统旨在通过自动化手段优化家庭照明,提高能源效率和居住舒适度。这通常涉及传感器(如光敏传感器、运动传感器)、控制器(如微控制器或PLC)以及执行器(如调光器或开关)。在这个教程中,我们将使用MATLAB和Simulink来创建一个智能家居照明控制系统的仿真模型。

xiaoheshang_123的博客 221

Winform窗体之间传值

winform窗体之间传值的三种推荐方式

DotNeter-Hpf的博客 4233

上午题目复习ing

无线局域网,11b是常用的,2.4ghz,后来改进5ghz,有些字段可以工作在5g的字段802.11/11a/1h/11n,,,,,11b和11g还在2.4ghz工作。数据链路层 传输服务,数据链路维护,差错控制,arp ip到mac,rarp反过来,token ring,x.25,atm,ethernet,蓝牙10m,简化因特网,分散式网,快调频,短包,点对点,点多多点,2.4ghz,最高速率1mb/s。gsm:是时分多址,900m-1800m,微蜂窝是市区,微微风是室内,伞是盲点,

weixin_47120900的博客 894

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

窗体之间的传值问题

以前对WinForm窗体显示和窗体间传值了解不是很清楚最近做了一些WinForm开发,把用到的相关知识整理如下A.WinForm中窗体显示显示窗体可以有以下2种方法:Form.ShowDialog方法 (窗体显示为模式窗体)Form.Show方法 (窗体显示为无模式窗体) 2者具体区别如下:1.在调用Form.Show方法后,Show方法后面的代码会立即执行2.在调用Form.Show

1860

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# 利用委托事件进行窗体间的传值

引言:   窗体间传值是每个学习WinForm新手的常见问题,最初级的方法就是 在窗体中先获取到要接受值窗体。然后通过.得到某个空间或者属性,直接赋值,这个需要接收放的窗体属性或者空间必须是public ,是极不安全的一种方式。在升级一下的新手做法就是在接受窗体中定义一个方法然后通过 调用这个方法来给某个控件或者属性赋值。这两种方法都是非安全的低级方式。非常不建议使用。本文我们讲讲如何通过委托事件(非单纯的委托)来解决窗体间信息传递的问题。 场景: 通过点击主主窗体Fro...

刘欢的博客 2773

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【WinForm】—窗体之间传值的几种方式

前言 &nbsp;&nbsp;&nbsp;&nbsp;小编最近维护一个Winfrom窗体,是项目中CS端的主窗体,很多子窗体需要从主窗体获取值,同时子窗体还需要给主窗体回传值,下面来给大家介绍一下。 正文 &nbsp;&nbsp;&nbsp;&nbsp;本文中以主窗体为frmMain,子窗体为frmGroup ,两窗体之间的传值来做示例。 方式一: 使用公共静态变量传值 主窗体frmMa...

全力奔跑,梦在彼岸 3万+

Winform窗体间传值

窗体间传值要弄清楚到底是哪个对象的问题,否则容易传错值。就比如窗体对象loginFrm为登陆窗体,想把当前的登陆用户信息传递给主窗体mainFrm,但是却实例了一个新的对象loginFrm把里头的信息传递给了mainFrm,所以得到了一空值,颇有刻舟求剑的味道,不同的内存空间就比如湖水的宽广一样,存放着不同的对象,彼此要分清楚。窗体传值的前提是,要传的字段,在类里面的访问修饰符必须是public(如果在源窗体内传值则例外,参见下列常用方法2)。常用的方法:1.    静态变量,在窗体里Class Form1

SimplicityLife的专栏 698

C#练习2、窗体传值

常用方法有: 一、通过事件

skdwlj的博客 339
上一篇: js 的一些验证
下一篇: 事件回调
dgh_85
博客等级 码龄21年 6粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值