C#学习笔记二十一(窗体数据传输)

C#七层登录窗体实现 前言 马不停蹄,三层之后咱们来看七层。七层从数据库到代码到调错最后到梳理我用了1周的时间。这一周可以说对七层以及分层的思想有了更深一步的理解。下面笔者将从一个初学者的角度探讨七层开发的整个流程,这是我认为目前对于初学者来说比较系统的开发步骤,欢迎大家批评指正!     正文 一、设计你的数据表 不管怎么说,第一步不应该是整个七层的关系图吗?是的,对于开发来说,我们要先有图,先有整体再对... 阅读详情

1、主窗体向子窗体传输

通过构造函数传递

主窗体部分:

 public partial class Father : Form
 {
     public Father()
     {
         InitializeComponent();
     }

     private void button1_Click_1(object sender, EventArgs e)
     {
         string shujv = textBox1.Text;
         int Age = 20;

         Son s1 = new Son(shujv,Age);
         s1.Show();
     }
     //1.构造函数
     //需要在子窗体的代码中使用构造函数

 }

子窗体部分:

 public partial class Son : Form
 {
     //定义所需的字段
     private string jieshouShujv;//防止字段的值被随意修改,使用private
     private int jieshouAge;
     
     public Son(string shujv,int age)
     {
         InitializeComponent();
         jieshouShujv = shujv;
         jieshouAge = age;
         textBox1.Text = jieshouShujv+" "+jieshouAge;
     }
 }

通过属性传递

主窗体部分:

 public partial class Form1 : Form
 {
     public Form1()
     {
         InitializeComponent();
     }

     private void button1_Click(object sender, EventArgs e)
     {
         Son s1=new Son();
         s1.UserName = textBox1.Text;
         s1.Age = 20;
         s1.Show();

     }

     //通过属性去进行传值
     //是在子类去定义属性,并且把定义的属性给分开。
     //这样就可以在父类中调用到属性,并可以直接对其赋值,之后子类就可以直接用属性
 }

子窗体部分:

public partial class Son : Form
{
    //定义属性
    public string UserName { get; set; }
    public int Age { get; set; }
    public Son()
    {
        InitializeComponent();
    }

    private void Son_Load(object sender, EventArgs e)
    {
        textBox1.Text= UserName+" "+Age;
    }
}

通过公共方法传递

主窗体部分:

 public partial class Form1 : Form
 {
     public Form1()
     {
         InitializeComponent();
     }

     private void button1_Click(object sender, EventArgs e)
     {
         Form2 f2= new Form2();          

         //调用方法更新数据
         Thread.Sleep(1000);//使线程休眠
         f2.UDXianShi(textBox1.Text,DateTime.Now);
         f2.ShowDialog();
     }
 }

子窗体部分:

 public partial class Form2 : Form
 {
     public Form2()
     {
         InitializeComponent();
     }

     public void UDXianShi(string name,DateTime shijian)
     {
         if (this.InvokeRequired)
         {
             this.Invoke(new Action(()=>UDXianShi(name,shijian)));
         }
         textBox1.Text = name+"的登陆时间"+shijian.ToString("HH:mm:ss");

     }
 }

2、子窗体向主窗体传递

使用委托和事件来进行传递

主窗体部分:

 public partial class Form1 : Form
 {
     public Form1()
     {
         InitializeComponent();
     }

     private void button1_Click(object sender, EventArgs e)
     {
         Form2 f2=new Form2();
         //先将方法传给事件
         f2.Databack += SonFormDataBack;//绑定方法并没有执行
         f2.Show();

     }
     //之前的代码只是基础
     //现在要用方法将执行逻辑封装起来
     //随后再把方法给委托
     //最后再调用委托和事件来执行逻辑

     private void SonFormDataBack(string Data)
     {
         textBox1 .Text ="从子窗体返回的数据是:"+ Data;
     }

 }

子窗体部分:

 public partial class Form2 : Form
 {
     public Form2()
     {
         InitializeComponent();
     }
     //定义委托和事件
     //访问修饰符一般为public方便父类调用
     //委托后面可以传入参数
     public delegate void DatabackDelegate(string Data);
     //事件除了event后面跟Action外还可以用委托名
     public event DatabackDelegate Databack;//事件

     private void button1_Click(object sender, EventArgs e)
     {
         //子类向父类传数据会用到委托delegate和事件
         if (Databack!=null)//判断事件是否为空
         {
             Databack(textBox1.Text);    
         }

     }
 }

C#窗体串口助手 可扩展性要求:该串口助手应该具备良好的可扩展性,能够适应不同的串口设备和系统环境,并支持后续的功能扩展和定制开发。* 易用性要求:该串口助手应该具备良好的用户体验,提供简洁明了的界面和操作流程,方便用户进行使用和管理。* 提供自定义数据格式的界面,包括数据包头、数据体、校验位等,方便用户根据实际需求进行数据解析和组包。* 数据格式化:支持自定义数据格式,包括数据包头、数据体和校验位等,支持数据解析和组包功能。* 数据读写:支持读取和写入串口数据,包括文本和二进制格式,支持实时数据展示和日志记录。 阅读详情

相关推荐

C#窗体闪烁效果实现与源码解析

P/Invoke是Platform Invocation Services的缩写,是.NET框架中允许托管代码(Managed Code)调用非托管代码(Unmanaged Code)的一种机制。非托管代码通常是指操作系统提供的原生API或第三方库中的函数。在.NET中,由于安全和内存管理的原因,不能直接调用非托管代码,这就需要P/Invoke来搭建桥梁。P/Invoke通过声明托管代码中的一个方法为extern,并使用DllImport属性指定相应的非托管DLL来实现。

weixin_33660045的博客 1077

笔记—————C#窗体间数据的传递(事件)

C#窗体间数据的传递(委托) 窗体间数据的传递,顾名思义至少两个窗体才能进行数据的传递。以下内容为两个窗体间数据的穿的传递。 (一) Form1(没有实例化的父窗体) 窗体向下一个窗体(Form2 用new运算子申请出来的实例对象,子窗体)进行数据的传递。这一个比较简单:在Form2 中声明一个公有的数据成员,在Form2 展示之前对实例Form2 的数据成员进行赋值即可。 (二)Fo

KawYang的博客 9803

C#窗体实现简易聊天系统实战指南

在本章节中,我们详细介绍了聊天室系统中消息发送与接收的关键技术细节。我们从消息格式的设计开始,讨论了JSON消息格式的设计和解析过程,以及在异常情况下的处理策略。接着,我们探讨了消息队列管理,包括队列的优势、入队出队操作,以及如何处理队列阻塞和进行性能优化。在第四章的讨论中,我们深入到了聊天室消息传输的机制,为构建一个高效且稳定的聊天系统奠定了坚实的基础。

weixin_30600615的博客 811

C#窗体间数据传递

C#窗体间数据传递 1.新建窗体应用程序:窗体1,拖入控件; 2.新建窗体应用程序:窗体2,拖入label控件; 3.新建一个类,类中创建一个静态字段; 类中代码: public class opname { public static string name; } 4.在窗体1中加入代码,原理是窗体1的值传给新建类静态字段,然后取值时直接从静态字段中取值; 窗体1代码: opname.name = textBox1.Text;//窗体1的值传给新建类静态字段 Form2 frm2 = new F

seven_apple的博客 1367

C# WinForm 窗体间交互与数据传递实践指南

在.NET框架下,WinForm应用是常见的桌面应用程序开发方式。开发者经常需要在不同的Form之间进行方法调用以实现特定的业务逻辑。本章将介绍基础的WinForm间方法调用,这将为之后章节中传递参数和复杂数据结构打下基础。在WinForm中,参数传递是通过方法参数实现的。参数可以是值类型(如int、char等)或者引用类型(如类的实例)。值类型的参数传递是通过值拷贝,意味着在方法内部,参数的值被复制了一份,方法内部对参数的修改不会影响原始数据。

weixin_31860973的博客 1626

C#多屏显示与窗体间数据传递实践指南

事件是应用程序中发生的事情,可以被其他应用程序部分监听。在窗体应用程序中,事件可以是由用户输入(如鼠标点击、键盘输入)或程序内部逻辑触发的。// C# 示例代码:定义和触发自定义事件set;" };在上面的代码中,是一个事件委托,它引用了一个接受参数的方法。类有一个方法,它在触发事件之前首先检查是否有任何订阅者。如果有的话,它就会调用Invoke方法来触发事件,传递事件数据。

weixin_26850469的博客 984

c#如何实现在两个窗体(Form)间传输数据或变量

在父窗体中显示子窗体时,加上子窗体.Owner=this;在子窗体中定义一个父窗体对象,在Load函数里面让父窗体对象=(父窗体类型)this.Owner。然后用这个父窗体对象就可以在子窗体的任何位置直接使用它的参数了(这些参数要定义成公共的).将父窗体对象定义成子窗体的一个变量,不是在Load中定义父窗体对象,只是在Load中获取父窗口,这样在子窗体的任何位置都应该可以使用这个父窗口对象了 如

Garvin的专栏 1万+

遥感数据处理之MCD19A2数据的处理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 这一段时间一直在做modis气溶胶产品——MCD19A2这个数据的处理工作,总结了一些东西,在这里分享一下。 modis数据一般可以用MCTK和MRT这两个工具进行处理,下面先介绍一下用这两种工具处理MCD19A2的流程: 先解众惑:为什么使用MCD19A2数据处理出来的结果会有3个或4个或5个波段。 这里使用HDF Exploer这个软件,下载链接 1.使用MCTK处......

weixin_42176976的博客 1万+

C#跨窗体传值的几种方法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 转自:https://www.cnblogs.com/xh6300/p/6063649.html 欢迎使用Markdown编

joe8910的博客 3779

C++ 核电站

问题描述 一个核电站有n个放核物质的坑,排列在一条直线上。如果连续m个坑中放入核物质就会发生爆炸,所以某些坑中不能放核物质。 本题的任务:对于给定的n和m,求不发生爆炸的放置核物质的方案总数。 输入格式 第一行两个正整数n和m,之间用一个空格隔开。2≤n≤50,2≤m≤5。 输出格式 一行一个正整数,表示方案总数。 输入样例 4 3 输出样例 13 数据规模与约定 2≤n≤50,2≤m≤5 CODE #include<bits/stdc++.h> using namespace

HybridCOW_HORSE的博客 1803

贝加莱Automation Studio 4.10安装保姆级教程:从官网下载到解决.Net 3.5报错

本文提供贝加莱Automation Studio 4.10的详细安装教程,涵盖从官网下载到解决.Net 3.5报错的全过程。特别针对工业自动化开发环境中常见的.Net Framework 3.5安装问题,提供多种经过验证的解决方案,包括控制面板安装、DISM命令离线安装和手动下载安装包等方法,帮助工程师顺利完成PLC开发环境的搭建。

weixin_30955617的博客 713

【转】c#实现在两个窗体(winform)之间传输数据或变量的方法

在父窗体中显示子窗体时,加上子窗体.Owner=this; 在子窗体中定义一个父窗体对象,在Load函数里面让父窗体对象=(父窗体类型)this.Owner。 然后用这个父窗体对象就可以在子窗体的任何位置直接使用它的参数了(这些参数要定义成公共的),将父窗体对象定义成子窗体的一个变量,不是在Load中定义父窗体对象,只是在Load中获取父窗口,这样在子窗体的任何位置都应该可以使用这个父窗口对象

zjwen2007的专栏 4022

Android13系统设置第三方app为设备所有者

DevicePolicyManagerService.java文件所在目录是frameworks/base,记得将包类名换成自己app的。2. 将拷贝到系统分区下的两个xml文件继续通过init.rc服务拷贝到data/system/目录下并修改权限。1. 拷贝设备所有者和设备管理器两个对应的xml文件到系统分区。

wzh048503的博客 2507

基于阿里云的C#窗体实现两端通信

基于阿里云的C#窗体实现两端通信 来自一位大手子@Eragonl,大家可以在csdn找到他 前期准备 ·1.1所需工具的确认和安装: 打开VisualStdio Installer后点击上方的单个组件后向下寻找到 .NET Framework的SDK和目标包,确认好至少安装了一个版本的SDK和目标包(我这里使用的是4.6.1的版本) ​ ·1.2 创建一个C#窗体: ·1.3 下载MQTT库和必要的SDK文件 创建完成以后,现在我们来下载MQTT库的4.3.0版本。 首先我们需要在VS

simplebooy的博客 2650

波分复用-Zblock仿真

Z-BLOCK是一种用于光通信模块的光学元件,其核心结构是在玻璃块一侧贴有4个特定波长滤光片,另一侧镀有反射膜和增透膜。光信号在内部呈现Z字形反射路径,实现波长分离。文章以可见光LED为例,在ZEMAX中演示了非序列模式下的建模过程,重点介绍了滤光片和膜层的参数设置方法。需要注意的是,入射角度需根据玻璃折射率、通道高度和厚度精确计算,否则可能导致光泄漏。该建模方法同样适用于光通信中的光纤激光器系统。

Zhaxibamao的博客 1748

ComfyUI整合包、秋叶ComfyUI、Florence节点报错下载并加载Florence2模型No module named ‘timm.layers‘、ComfyUI报错解决

步骤操作1打开2地址栏输入cmd并回车3输入命令:4安装完成后重新打开 ComfyUI,执行工作流,即可解决报错。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1243

C#从子窗体传输数据给主窗体--方法(一)委托

C#从子窗体传输数据给主窗体--方法(一)委托创建两个窗体Form1与Form2在子窗体(Form2)中创建委托在主窗体(Form1)中实现委托运行程序 最近学习到的一些方法,记录下。 创建两个窗体Form1与Form2 在子窗体(Form2)中创建委托 public partial class Form2 : Form { public Form2() ...

qwehong的博客 2096

基于QT+Halcon实现线序识别

一、线序识别算法步骤。 1.按照检测区域m_pItem1的外接矩形(rtBount)的大小, 截取感兴趣区域图像hRoi。 2.把截取出来的感兴趣区域图像hRoi, 分离出R、G、B三个通道hRed、hGreen、hBlue。 3.把hRed、hGreen、hBlue三个通道转换成cielab颜色空间, 得到hChannelL、hChannelA、hChannelB三个颜色图。 4.设m_pItem1的宽为iItemW, 高为iItemH. 分别申请大小为iItemW的pSumL、pSumA、pSumB内

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 1748

C#通过委托与事件实现父窗体向多个子窗体传数据

C#通过委托与事件实现父窗体和多个子窗体传数据 按照5个步骤实现: 主窗体: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using...

韬光养晦 861

lammps教程:官方自带eam_database程序拟合EAM势方法介绍

使用lammps模拟金属体系,最常用的势函数为eam、meam势。 对于大多数金属或者合金来说,可以从网上下载相对应的eam或meam势力场文件。 而对于一些新的合金材料,可能就找不到相对应的力场文件。 解决的方法有两种,一是采用混合势(pair_style hybrid),第二种方法是自己拟合势函数文件。 混合势的写法在前面文章中已经介绍过,本文介绍一种拟合EAM势的方法。 该方法是运行Xiaowang Zhou编写的一个拟合程序,该程序可自动生成所需要的合金势。 这个程序能够拟合的合金元素有: Cu,

lammps_jiayou的博客 4616

假人有限元模型

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

C#委托窗体间传递数据

什么是委托? 一句话:委托是一个可以代理方法的特殊数据类型 首相委托是一种特殊数据类型 其次委托代理的数据不是普通数据而是方法 委托窗体间窗体数据的价值 窗体间可以共享对象(比如工控上位机实例PLC连接时只需一个) 主从窗体运行状态可以实时更新(工控上位机主要运用) 窗口运行界面 主窗体点击可以同时给从窗体加1 主窗体点击复位可以将加的值请空 从窗体点击回让主窗体加1 主窗体代码 u...

一贝水的博客 3557

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C#多窗体传递数据

主窗口程序 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using Sy...

一只双鱼儿的博客 1978

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

c# winform中,怎样得到另一窗体的值(总结)

c#中如何得到子窗口上的控件值?   方法1:将textBox1定义为public,不推荐 (在A项目中用一个内存变量存值.并设为PUBLIC. 在B项目中引用A项目。获取需要的值。 用的时候注意 using A的命名空间。)   方法2:给form2增加一个属性,推荐 如名为 TextBoxValue public string TextBoxValue{ get { retu...

qq_27178453的博客 1万+

c#跨窗体传送数据

在此示例中,第二个窗体中通过创建第一个窗体的实例来调用其公共方法,将需要传输的数据传输过去。第一个窗体中可以通过公共变量来访问从第二个窗体传输过来的数据。3.在第二个窗体中创建第一个窗体的实例,并调用该窗体中的公共方法将需要传输的数据传送过去。2.在第一个窗体中定义一个公共的方法,该方法可以接收从第二个窗体传输过来的数据。4.在第一个窗体中可以通过该公共变量来访问从第二个窗体传输过来的数据。1.在两个窗体中都定义一个公共的变量,以便在这两个窗体之间共享数据。

2301_80303436的博客 1027

C#父子窗体

分类: WinForm(窗体c#) 2011-10-20 20:01 287人阅读 评论(0) 收藏 举报 目录(?)[-] 在设计时创建 MDI 父窗体创建 MDI 子窗体确定活动的 MDI 子窗体将它的文本复制到剪贴板将数据从剪贴板发送到活动 MDI 子窗口排列子窗体 C#中,怎么实现在第一个窗体上点一个按钮,出现第二个窗体? 在按钮的click事件

guoshan88的专栏 2435

C#编写串口助手

使用C#编写串口助手

weixin_49708032的博客 1万+
上一篇: C#正课二十一(单例模式)
下一篇: C#正课二十二
ctrl_v助手
博客等级 码龄4年 16粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值